#1 Le 08/08/2014, à 11:44
- Nouri2012
Si j'exécute la fonction fonction1 ci-dessous, que se passe-t-il?
Si j'exécute la fonction fonction1 ci-dessous, que se passe-t-il ?
void fonction2(unsigned char *a)
{
unsigned char *b;
b=a;
...
free(b);
}
void fonction1(void)
{
unsigned char *a;
a=(unsigned char*)malloc(NB_ELEM);
fonction2(a)
free(a);
}
Hors ligne
#2 Le 08/08/2014, à 12:12
- pingouinux
Re : Si j'exécute la fonction fonction1 ci-dessous, que se passe-t-il?
Bonjour,
free(a); dans fonction1, va essayer de désallouer un pointeur qui ne pointe plus sur rien, car déjà désalloué par free(b) dans fonction2.
Hors ligne