Aracılığıyla paylaş


Derleyici Uyarısı (düzey 1) C4722

'function' : yıkıcı hiçbir zaman döndürmez, olası bellek sızıntısı

Denetim akışı bir yıkıcıda sonlanır. İş parçacığı veya programın tamamı sonlandırılır ve ayrılan kaynaklar serbest bırakılamaz. Ayrıca, özel durum işleme sırasında yığın geri sarma için bir yıkıcı çağrılırsa yürütülebilir dosyanın davranışı tanımlanmamıştır.

Sorunu çözmek için, yıkıcının döndürülmemesi için neden olan işlev çağrısını kaldırın.

Örnek

Aşağıdaki örnek C4722 oluşturur:

// 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
}