Was passiert, wenn wir Malloc mit negativen Parametern aufrufen?
7.22.3.4 Die Malloc-Funktion Mit der Malloc-Funktion wird Platz für ein Objekt reserviert, dessen Größe durch size festgelegt und dessen Wert unbestimmt ist.
Prototyp:void *malloc(size_t size);
Ich habe versucht, einen negativen Wert als Parameter zu übergeben:malloc(negative)
kehrt zurückNULL
.
Liegt es daran, dass das [size_t] -Negativ in vorzeichenloses [irgendeinen großen Wert] konvertiert wurde und nicht den erforderlichen Speicherplatz belegen kann, oder dass es der Funktionsprüfungsparameter ist und zurückgibtNULL
?
Wenn es zu einem großen positiven Ergebnis wird, dann beim Anrufenmalloc(INT_MIN+2)
es kehrt immer noch zurückNULL
, abermalloc(0)
Zugewiesen auf Zeiger und*p = somevalue
funktioniert. Was ist damit?
Ist die Implementierung definiert?
Lesen Sie diesen Link:Malloc (0)