Heim >Backend-Entwicklung >C++ >Kann C „new int[0]' leeren Speicher zuweisen, und wenn ja, welche Auswirkungen hat das?
Curiosity Corner: Zuweisen von leerem Speicher in C
Im Bereich der C-Programmierung stellt sich eine interessante Frage: Können wir Speicher für eine zuweisen? leerer Block, dargestellt durch new int[0].
Beobachtungen aus einem Test Anwendung
Eine einfache Testanwendung, die das Ergebnis von new int[0] ausgibt, zeigt eine Ausgabe von 0x876c0b8 an, was darauf hindeutet, dass tatsächlich Speicher zugewiesen wird.
Eintauchen in die Standard
Der C-Standard gibt hierzu Orientierung matter:
Zusätzliche Überlegungen
Foot-Note Insights
Ein interessanter Fuß -Hinweis aus 3.7.3.1/2 zeigt, dass die Absicht darin besteht, die Implementierung des Operators new() entweder mit malloc() oder calloc() zu ermöglichen, die sich in Bezug auf ähnlich verhalten Anfragen mit Nullgröße. C unterscheidet sich jedoch von C dadurch, dass eine Anforderung der Größe Null erforderlich ist, um einen Nicht-Null-Zeiger zurückzugeben.
Das obige ist der detaillierte Inhalt vonKann C „new int[0]' leeren Speicher zuweisen, und wenn ja, welche Auswirkungen hat das?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!