Ich denke, wir alle verstehen die Notwendigkeit des Löschens beim Neuzuweisen eines dynamisch zugewiesenen Zeigers, um Speicherlecks zu verhindern. Ich bin allerdings gespannt, inwiefern C++ die Verwendung von delete vorschreibt. Nehmen wir zum Beispiel das folgende ProgrammMuss neu immer gelöscht werden?
int main()
{
int* arr = new int[5];
return 0;
}
Während für alle Absichten und Zwecke kein Leck hier auftritt (da Ihr Programm endet und das Betriebssystem wird den gesamten Speicher aufzuräumen, sobald er zurückkehrt), aber tut die Standard erfordern nach wie vor - - oder empfehlen - die Verwendung von delete [] in diesem Fall? Wenn nicht, würde es einen anderen Grund geben, warum Sie [] hier löschen würden?
In der Tat, ich finde, dass ich oft delete [] Aussagen direkt vor der Rückkehr tippe, obwohl ich (auf praktischer Ebene) wusste, dass es keinen Unterschied machte. Und das ist keine Gewohnheit, die ich auch stoppen möchte - ich war nur daran interessiert, inwieweit der Standard es empfahl. – GRB