Compilerwarnung (Stufe 1) C4722

Aktualisiert: November 2007

Fehlermeldung

'Funktion': Der Destruktor gibt nie Werte zurück, möglicherweise ist ein Speicherverlust aufgetreten
'function' : destructor never returns, potential memory leak

Die Ablaufsteuerung endet in einem Destruktor. Der Thread oder das gesamte Programm wird beendet, und reservierte Ressourcen werden möglicherweise nicht freigegeben. Wenn ein Destruktor während der Ausnahmeverarbeitung für eine Stapelentladung aufgerufen wird, ist außerdem das Verhalten der ausführbaren Datei nicht definiert.

Entfernen Sie zur Behebung des Problems den Funktionsaufruf, der dafür verantwortlich ist, dass der Destruktor nichts zurückgibt.

Beispiel

Im folgenden Beispiel wird C4722 generiert:

// C4722.cpp
// compile with: /O1 /W1 /c
#include <stdlib.h>
class C {
public:
   C();
   ~C() { exit(1); };   // C4722
};

extern void func (C*);

void Test(){
   C x;
   func(&x);
   // control will not leave Test because destructor will exit
}