Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
"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
}