wann muss ich delete verwenden?
-
Hi
Muss ich z.B. bei folgendem Code den Speicher mit delete aufräumen?
CWnd* window = CWnd::FindWindow(blablabla); blablab delete window; // <- ????Grüße twinlight
-
nein, mit delete wird nur der mit new angeforderte speicher gelöscht
-
Äh jetzt muss ich doch nochmal fragen.
reserviert FindWindow nicht den Speicher mit new?
Wie kann das CWnd objekt selber den Speicher wieder aufräumen?

-
du bekommst da nur nen zeiger auf ein bestehendes objekt, welches schon vor deinem FindWindow aufruf bestand.
-
hm ist logisch
aber was ist, wenn das fenster ohne MFC programmiert wurde?
dann richtet FindWindow doch ein CWnd Objekt ein, oder?
-
dann erstellt die mfc eine instanz und gibt sie auch wieder selbstständig frei. das delete brauchst du in deinem code nicht.
-
cool
das is aber net von der MFC

-
meinst du nett ?
Ansonsten kapier ich deinen Satz net
-
net -> nicht
-
@twilight
Jede Funktion, die einen Speicherbereich allokiert und einen Zeiger zurückgibt, MUSS irgendwo explizit erläutern, wie der Zeiger freizugeben ist. Ist dies nicht der Fall, muss der Zeiger nicht freigegeben werden.
Meist kapselt man allokierte Zeiger eh in Objekte.
-
@all danke
ich meinte natürlich nett
war wohl ein bisl lang vorm bildschirm