Hallo,
if(g_pAdapters) //Kurzschreibweise fuer if(g_pAdapters!=NULL)
das mit der Kurzschreibweise ist richtig - aber der Grundgedanke ein Trugschluss! Ich habe eben mal ein bisschen recherchiert und bin zu folgendem Ergebnis gekommen:
1. Der delete-Operator akzeptiert auch klaglos einen NULL-pointer. Das führt nicht zu einer Fehlermeldung; es passiert einfach bloß nichts.
2. Beim erfolgreichen delete wird der Zeiger _nicht_ auf NULL gesetzt, sondern behält seinen aktuellen, nun nicht mehr gültigen Wert. Deshalb ist die Abfrage, die du vorschlägst, sinnlos (Meine einzige Fundstelle zu _diesem_ Thema: http://www.linuxdocs.org/HOWTOs/C++Programming-HOWTO-10.html).
Fazit:
Wenn diese Zeile
delete[] g_pAdapters; // DER ÜBELTÄTER
einen Fehler auslöst, muss g_pAdapters einen von NULL verschiedenen Wert haben, der aber nicht auf das erwartete Array verweist!
Ciao,
Martin
Denken ist wohl die schwerste Arbeit, die es gibt. Deshalb beschäftigen sich auch nur wenige damit.
(Henry Ford, amerikanischer Industriepionier)