Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 1) C4722

'function' : destruktor nikdy nevrátí, potenciální nevracení paměti

Poznámky

Tok řízení se ukončí v destruktoru. Vlákno nebo celý program se ukončí a přidělené prostředky nemusí být uvolněny. Navíc, pokud bude volána destruktor pro odvíjení zásobníku během zpracování výjimek, chování spustitelného souboru není definováno.

Pokud chcete problém vyřešit, odeberte volání funkce, které způsobí, že se destruktor nevrátí.

Příklad

Následující příklad generuje 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
}