bonjour,
j'ai un problème avec la libération mémoire d'un tableau 2 dimensions allouée dynamiquement.
voila mon code :
avant la creation du tableau la memoire utilisée (via le gestionnaire des taches) est de 1244ko
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 int main() { system("pause"); int N = 10000,M=10000, i = 0, j=0; int** tab = NULL; // Ce pointeur va servir de tableau après l'appel du malloc tab = malloc(N * sizeof(int*)); // On alloue de la mémoire pour le tableau if (tab == NULL) // On vérifie si l'allocation a marché ou pas { exit(0); // On arrête tout } for (i = 0; i < M ; i++) { tab[i]=malloc(M * sizeof(int)); for (j = 0; j<M;j++) { tab[i][j]=200; } } system("pause"); for (i = 0; i<M; i++) { free(tab[i]); } free(tab); system("pause"); return 0; }
apres la creation et le remplissage du tableau j'ai une memoire utilisée de 392 964ko
apres le free() je retombe à une utilisation memoire de l'application de 2840ko
Comment faire pour retomber à la valeur de départ ?
merci d'avance
Partager