Moin, adsci schrieb am 18.11.2005 14:42:
da habt ihr wohl verständnisschwierigkeiten.
*Test = NULL; // Das nullt den Speicher des Objektes
nullt ja nicht den speicher des objektes, sondern den zeiger.
Ähem, und was macht dann das? Test = 0; Ich sehe das so: 'Test' ist der Zeiger auf einen Speicherbereich im Heap. Also setzt 'Test = 0' diesen Zeiger auf 0, wodurch der versehentliche Zugriff auf das Objekt an Adresse '*Test' nicht mehr möglich ist und ein Test '(!Test)' einfach möglich ist. '*Test' ist der dereferenzierte Zeiger, womit man direkt auf das Objekt zugreift, das an Adresse 'Test' beginnt. Ja, was soll dann bloß '*Test = NULL' bedeuten (wenn '=' nicht überladen wurde)?
man nullt den zeiger nach jedem delete, um daran indirekt sehen zu können, ob der zeiger auf noch referenzierten speicher zeigt.
Genau, aber der Zeiger ist 'Test' und nicht '*Test'. Michael