Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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