Die folgenden article erklärt Speicherlecks. Ich frage mich, warum der folgende Code ein Speicherleck verursacht.Warum ist das ein Speicherleck?
int *data = new int;
*data = 15;
Wenn ich data
erstellen und 15 zuweisen, dann so viel wie ich 15 verstehen in den Speicher kopiert wird data
So haben wir noch einen Zeiger, der auf data
Punkte und wir können delete
es.
Ich denke, ein Speicherleck wäre data = 0x00123
zum Beispiel, oder? Hier haben wir bereits die Kontrolle über die Erinnerung verloren, und die Erinnerung ist wirklich verschwendet.
Irgendwelche Gedanken?
Das Leck ist, wenn "löschen" nie auf den Zeiger aufgerufen wird, auf den "Daten" zeigen, das Kopieren von "15" ist kein Problem. –
Sie wissen, der Artikel sagt Ihnen genau, warum es ein Leck direkt unter dem Code. Auch der Code, wie er ist, ist kein Speicherleck, da wir keinen Kontext haben, wo er ist. – NathanOliver