void
bidon(int nb) { int* pin; pin = (int*) malloc(nb*sizeof(int)); if (pin == NULL) printf("erreur..."); else printf ("Allocation réussie ..."); } /* on sort de bidon sans avoir libéré l'espace mémoire pointé par pin */ int main() { bidon(30); /* Il est trop tard ici pour libérer l'espace réservé par bidon pin n'est plus accessible */ } |
int main
() { int* pin; pin = (int*) malloc(30*sizeof(int)); if (pin == NULL) printf("erreur..."); else printf ("Allocation réussie ..."); pin = (int*) malloc(30*sizeof(int)); /* trop tard!!! on vient de modifier pin sans avoir libéré l'espace réservé par le premier malloc */ ... } |
suivant plan