Un petit exemple pour commencer

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
// on alloue de la mémoire
pt1 = malloc (10*sizeof(char));
pt2 = malloc (sizeof(int));
 
// on fais des tas de trucs
...
...
...
 
// on libere la mémoire 
free(pt1);  pt1 = NULL;  // pour que ça soit propre
free(pt2);  pt2 = NULL;  // pour que ça soit propre

Comment le systeme sait-il qu'il faut liberer 10 octets pendant l'appel de free(pt1) alors qu'il n'en libere que 4 pour free(pt2) ???

(question annexe: si ya une table comment faire pour la consulter... )

Merci de me répondre ça fait longtemps que je me pose la question...