Speicher Problem (Dynamisch)
-
Hallo,
Ich habe ja schonmal meine Klasse hier gepostet da ich Hilfe von euch brauchte

Jetzt ist es wieder soweit wo ich net weiter komme, hier der Code als beispiel:
#include <iostream> void speicherint (int txt); void verschlüsselint (int txt); int main() { int n = 20; speicherint (n); return 0; } void speicherint (int txt) { int *ptr = new int; *ptr = txt; verschlüsselint (*ptr); delete ptr; *ptr = NULL; } void verschlüsselint (int txt) { int i = txt; }Das Problem ist, das ich beim *ptr = NULL ein Error bekomme, wenn ich es umdrehe sprich erst auf NULL setzen, dann delete, bekomme ich kein Error, was aber ein Memory leak ist oder?
Warum bekomme ich den fehler? was ist da falsch?
Wenn ich alles zusammen hab und es Compiliere, bekomme ich das zusehen:
void __cdecl _free_base (void * pBlock) { int retval = 0; if (pBlock == NULL) return; RTCCALLBACK(_RTC_Free_hook, (pBlock, 0)); retval = HeapFree(_crtheap, 0, pBlock); if (retval == 0) { errno = _get_errno_from_oserr(GetLastError()); } }Aber da bekomme ich den fehler, obwohl er schon längst raus ist aus der funktion mit dem dynamischen speicher, warum?
Bitte um Hilfe.
mfg
Kai
-
weil du mit *ptr auf Speicher zugreifst, den du in der Zeile vorher freigegeben hast. Was du wolltest ist ptr = NULL und was du eigentlich willst ist:
void speicherint (int txt) { verschlüsselint (txt); }Das macht nämlich exakt das gleiche.
-
ahh thx
oh man bin ich fail ja^^ hätte ich auch selbst drauf kommen können xDD bin ich aber net 
thxJetzt funzt das auch alles
