Compiler Warning (level 1) C4722
'function' : destructor tidak pernah kembali, potensi kebocoran memori
Aliran kontrol berakhir dalam destruktor. Alur atau seluruh program akan dihentikan dan sumber daya yang dialokasikan mungkin tidak dirilis. Selain itu, jika destruktor akan dipanggil untuk melepas tumpukan selama pemrosesan pengecualian, perilaku yang dapat dieksekusi tidak terdefinisi.
Untuk mengatasinya, hapus panggilan fungsi yang menyebabkan destruktor tidak kembali.
Contoh
Sampel berikut menghasilkan 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
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk