Partilhar via


Aviso do compilador (nível 1) C4722

'function' : destruidor nunca retorna, potencial vazamento de memória

O fluxo de controle termina em um destruidor. O thread ou todo o programa será encerrado e os recursos alocados não poderão ser liberados. Além disso, se um destruidor for chamado para o desenrolamento da pilha durante o processamento de exceções, o comportamento do executável será indefinido.

Para resolver, remova a chamada de função que faz com que o destruidor não retorne.

Exemplo

A seguinte amostra gera 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
}