Warum setzt free (p) p nicht auf NULL?

Alle Gründe, warum dies nicht das Standardverhalten von @ sein kafree()?

mehrere Zeiger auf dasselbe Objekt:

#include <stdlib.h>
#include <stdio.h>

void safefree(void*& p)
{
    free(p); p = NULL;
}

int main()
{
    int *p = (int *)malloc(sizeof(int));
    *p = 1234;
    int*& p2 = p;
    printf("p=%p p2=%p\n", p, p2);
    safefree((void*&)p2);
    printf("p=%p p2=%p\n", p, p2);
    safefree((void*&)p); // safe

    return 0;
}

Zuordnung vonmalloc Forderungen ausvoid*

und umgekehrt

safefree() Anforderungen anvoid*& (Referenz

Antworten auf die Frage(9)

Ihre Antwort auf die Frage