Salut à tous.
Le fil qui parle de pointeur, malloc, toussa, m'a titillé et j'ai voulu faire une petite expérience:
j'utilise un compilateur C++, mais le problème doit être identique en C.Code:int main(){ int* p; p = (int*)malloc(sizeof(int)); *p = 5; printf("p=%d\n",*p); free(p); printf("p=%d\n",*p); return 0; }
Après le free(p), mon debugger montre que p possède toujours la même adresse. Comme le processus ne fait rien d'autre ensuite, le tas ne devrait pas être affecté. Et pourtant, le 2ème printf ne m'affiche pas 5.
Comment expliquez-vous çà?
Merci pour vos suggestions.
-----