Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"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
}