mögliche Dubletten:
How does the standard new operator work in c++?
How does delete[] “know” the size of the operand array?Wie löscht [] die Größe eines Arrays?
Dupe von How does delete[] "know" the size of the operand array?
Ich bin gespannt, wie [] aus der Größe des zugewiesenen Speicher Zahlen löschen. Wenn ich so etwas mache:
int* table = new int[5];
delete[] table;
Ich verstehe, dass der Speicher der Tabelle freigegeben wird. Aber was würde passieren, wenn ich den Zeiger einer anderen Tabelle neu zuordnen würde.
int* table = new [5];
int* table2 = new [9];
table = table2;
delete[] table;
Werde ich eine Tabelle der Größe 5 oder 9 freigeben? Ich bin daran interessiert, wie new [] und delete [] Informationen über ihre Größe teilen. Oder vielleicht fehlt mir hier etwas Wesentliches.
Duplizieren (mehr oder weniger) von http://Stackoverflow.com/questions/377178/how-does-the-standard-new-operator-work-in-c/377208 –
Ich stimme nicht zu, das ist genauer. –
Als Randnotiz, und wie in den Antworten erwähnt, ist dies Implementierungsspezifische Sachen. Das bedeutet, dass Sie sich nicht darauf verlassen sollten, wie die Größe des Arrays extrahiert wird, da es sich vom Compiler zum Compiler und von der Compiler-Version zur Compiler-Version ändern könnte. –