Bonjour,
Je voudrais savoir se qu'il se passe lorsque l'on malloc. Je sais que l'orsque l'on malloc il y à une limite et que l'on repousse cette limite en malloquant. J'ai un peu de mal à visialiser la chose.
Pour l'exemple d'un char**, si je voulais malloc une grille pour un tetris, ce que je faisais était:
Et si je dois free:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 char **tab; int i = 0; tab = malloc(20*sizeof(char*)); while (i < 20) { tab[i] = malloc(10*sizeof(char)); i++; }
Le problème c'est que les "mini" malloc, ce de ma boucle sont, selon moi, des adresse à l'intérieur de mon adresse renvoyé par le gros malloc. Donc si je free le gros malloc je devrait aussi free ce à l'intérieur de celui-ci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 while (i < 20) free(tab[i++]); free(tab);
Merci de bien vouloir m'expliquer la chose.
Partager