Ist free (ptr), wo ptr NULL ist, ein beschädigter Speicher?

Theoretisch kann ich das sagen

free(ptr);
free(ptr); 

ist eine Speicherbeschädigung, da wir den Speicher freigeben, der bereits freigegeben wurde.

Aber was wenn

free(ptr);
ptr=NULL;
free(ptr); 

Da sich das Betriebssystem undefiniert verhält, kann ich dazu keine theoretische Analyse darüber bekommen, was passiert. Was auch immer ich tue, ist dieses Gedächtnis korrupt oder nicht?

Ist das Freigeben eines Nullzeigers gültig?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage