char* buffer freigeben
-
Hallo,
wenn ich so was mache...
for...
char* buffer = strstr( str1, "blue" );reicht dann buffer = NULL;
um den buffer freizugeben?
GRuß
-
1. buffer ansich muss nicht speziell freigegeben werden.
2. ob str1 freigegeben werden muss, ist davon abhängig wie er alloziert wurde (new[] -> delete[], auf dem stack -> wird automatisch freigegeben, ...).
SimonEdit
Hier noch die Doku: http://www.cplusplus.com/reference/clibrary/cstring/strstr/
-
FrankTheFox schrieb:
char* buffer = strstr( str1, "blue" );reicht dann buffer = NULL;
um den buffer freizugeben?Welchen "Buffer" ?
Durch das setzen eines normalen Zeigers auf Null wird nie irgendwo Speicher freigegeben. Es sei denn, Du verwendest Hilfsmittel wie zB den Böhm GC.
Im Falle von strstr wird ein Zeiger zurückgegeben, der entweder ein Nullzeiger ist oder direkt irgendwo indas char-Array zeigt, welches über str1 erreicht werden kann.
-
Hallo,
ja! Zeiger referezieren Variablen im Speicher. Zeiger == NULL, er "zeigt" auf nix!! Zeiger "zeigt" auf etwas, dann ....
Durch buffer = NULL; "zeigt" wieder auf nix. "Variable" besitzt aber trotzdem noch den String (Wert). Aber nicht das Problem des Zeigers.
Ich leg mich jetzt erst mal schlafen, wer über so einen Mist nachdenkt braucht eine Pause.Gruß
Franky