Bonjour, j'aimerais savoir si mon code suivant engendre une fuite de mémoire. Par exemple, je fais la fonction suivante :
Alors je pense qu'il doit y avoir une fuite de mémoire car ma fonction ma_fun renvoie (si j'ai bien compris) une copie de l'adresse de tab. Ce qui fait qu'il y a deux pointeurs : tab et toto. Pourtant, je n'ai qu'un seul malloc et un seul free.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 int * ma_fun(int i1,int i2) { int * tab=malloc(2*sizeof(*tab)); tab[0]=i1; tab[1]=i2; return tab; } int main() { int * toto=ma_fun(3,5); printf("%d\t%d\n",toto[0],toto[1]); free(toto); return 0; }
Est-ce que je me trompe ?
Merci.