Problem mit "Hello Word"



  • Ich weis ja nicht, wie ihr das seht, aber ich bin schon fro, dass da kein "void main" steht 😉



  • akari schrieb:

    Hallo

    Destruktoren sind bestimmte Funktionen von Klassen, die beim Ende der Lebenszeit von Objekten betimmte Sachen aufräumne, wie zum Beispiel Speicher freigeben.

    Ein return beendet immer genau die lokale Funktion. Schreibst du also ein return in die main, wird die main beendet und damit auch dein Programm.

    bis bald
    akari

    Und das soll einer verstehen der sich erst seit ein paar Tagen mit C++ beschäftigt 🙂 🙂



  • also die leeren den gesammten speicher oder habe ich da was falsch verstanden?



  • Kouji schrieb:

    also die leeren den gesammten speicher oder habe ich da was falsch verstanden?

    nein

    angenommen du reservierst speicher im konstruktor oder sonstwo

    CClass::CClass(){
        m_TChar = new TCHAR[20000];
        SecureZeroMemory(m_TChar, 20000);
    }
    

    musst du das auch wieder loeschen

    CClass::~CClass(){
        delete [] m_TChar;
        m_TChar = NULL;
    }
    

    wenn du das programm mit return beendest wird dieser desktruktor aufgerufen und die 20000 zeichen reservierung geloescht,
    wenn du aber per exit das programm verlaesst
    wird dieser destruktor nicht mehr ausgefuehrt, das dazu fuehrt das du im speicher ein bereich von 20000 zeichen hast welche du nicht mehr benutzen kannst und auch nicht andes freigeben da du nicht mehr weisst wo dieser ist
    stichwort memory-leak


Anmelden zum Antworten