共用方式為


編譯器警告 (層級 1) C4722

'function' : 解構函式從未返回,可能有記憶體遺漏

控制流程會在解構函式終止。 執行緒或整個程式會終止,且可能不會釋放已配置的資源。 此外,如果例外狀況的處理期間將呼叫解構函式以進行堆疊回溯,則未定義可執行檔的行為。

若要解決,請移除導致解構函式不返回的函式呼叫。

範例

下列範例會產生 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
}