delete hier verwenden????
-
Hi
muss ich hier delete verwenden:int* testfunktion() { int* var; var = new int; *var = 8; return int; } int main() { int* test; test = testfunktion(); /* blablabla */ delete test; // <==== muss ich hier delete verwenden???????? }
Ich komm einfach nicht dahinter
wird der Speicherbereich automatisch freigegeben, ohne dass ich delete verwenden muss?Danke für eure Hilfe
-
new und delete nicht in C-Code, das gehört nach c++. Ansich nimmt man dazu malloc und free. Also z.B.
int* testfunktion() { int* var; var = malloc(sizeof(int)); *var = 8; return int; } int main() { int* test; test = testfunktion(); /* blablabla */ free(test); }
-
Oh sorry, habs ganz vergessen
also muss ich in diesem Beispiel free verwenden?
-
Ja, du musst was du alloziierst auch irgendwo wieder freigeben. Das Betriebssystem räumt zwar beim Programmende alleine auf, aber a) ists schlechter Stil und b) hilft dir das nicht, wenn du in schleifen oder so im Programmverlauf was alloziierst, denn dann frisst das Programm mehr und mehr Speicher den es garnicht benutzt.
-
danke