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
}