Dela via


Kompilatorvarning (nivå 1) C4722

"funktion" : destructor returnerar aldrig, potentiell minnesläcka

Anmärkningar

Kontrollflödet avslutas i en destructor. Tråden eller hela programmet avslutas och allokerade resurser kanske inte släpps. Om en destructor anropas för stackavspolning under undantagsbearbetningen är beteendet för körbar inte heller odefinierat.

Lös problemet genom att ta bort funktionsanropet som gör att destructor inte returneras.

Example

I följande exempel genereras C4722:

// 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
}