011
14.01.2004, 16:11 Uhr
(un)wissender
Niveauwart
|
@Windalf Wenn new fehlschlägt, dann wirft es std::bad_alloc, nur wenn du explizit sagst, bitte gib NULL zurück, wir null zurückgegeben (new(nothrow) type). Darum immer aufpassen, wenn man Klassen exceptionsicher machen will! Sonst entstehn das schnell Ressourcenlecks. (Wobei new normalerweise, wenn man nicht gerade 4 GB Speicher haben will, nicht fehlschlägt, aber verlassen kann man sich darauf nicht!)
Ob nun der Speicher mit new oder malloc oder mit api geholt worden ist, kann du nie (portabel ) überprüfen. Wenn man den Adresseraum kennt(nicht portabel), kann man prüfen, ob der Zeiger dynamisch allokiert wurde, das ist aber auch schon alles. -- Wer früher stirbt ist länger tot. |