Kaidaten a écrit :
Ah je ne connaissais pas cette méthode ^^
Merci bien !
Je n'ai que quelques notions en C... Je suis en train d'étudier ce langage
Pourquoi faut-il écrire *((char *) *adresse*) ?
Et effectivement, lorsque je lançais mon "programme", j'avais un message "... a cessé de fonctionner."
|
Qu'est ce qui a cessé de fonctionner? Car dans ce cas, si tu es "sur" de ces adresses, tu ne devrais pas avoir ce msg, la ca peut signifier que tu tapes dans l'espace d'adressage d'un autre processus...
Pour t'expliquer rapidement : En C, il n'y a pas de moyen direct d'accèder a une adresse donnée "en dure" (car c'est sale, à risque etc....) il faut donc trouver un moyen de contourner la méthode traditionnelle (malloc, free etc..)
Donc le (char *) @ est un cast implicite, precisant que l'addresse 0x123456 est de type pointeur sur caractère (1 bit) le *(lecast) signifie
que tu as un pointeur sur cette adresse. (je sais pas si c est très clair mais c'est pas si facile a explique....)
Si tu as que quelques notions en C, tu t'attaques à une partie bien au dessus de ton niveau actuellement, je t'invite à regarder les cours sur developpez.com notamment celui sur la gestion mémoire en C
Et petit conseil : code sous linux, tu auras bcp plus de facilité avec la mémoire qu'avec la gestion
de celle ci sous windows
Message édité par Av3k le 05-12-2013 à 09:27:30