Compartir a través de


Advertencia del compilador (nivel 1) C4722

'function': el destructor nunca devuelve un valor, posible pérdida de memoria

El flujo de control finaliza en un destructor. Se cerrará el subproceso o el programa completo y no se pueden liberar recursos asignados. Además, si se llama un destructor para desenredar la pila durante el procesamiento de la excepción, el comportamiento del ejecutable es indefinido.

Para resolver el problema, quite la llamada de función que hace que el destructor no devuelva ningún valor.

Ejemplo

El ejemplo siguiente genera la advertencia 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
}