Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jangan hapus yang
owner<T>mungkin dalam status tidak valid (r.3)
Keterangan
Setelah penunjuk pemilik merilis atau mentransfer sumber dayanya, pointer tersebut masuk ke status "tidak valid". Menghapus penunjuk seperti itu dapat menyebabkan kerusakan memori langsung karena penghapusan ganda, atau pelanggaran akses saat sumber daya yang dihapus diakses dari penunjuk pemilik lain.
Nama analisis kode: DONT_DELETE_INVALID
Contoh 1
Menghapus pemilik setelah mentransfer nilainya:
gsl::owner<State*> validState = nullptr;
gsl::owner<State*> state = ReadState();
validState = state;
if (!IsValid(state))
delete state; // C26404
Contoh 2
Menghapus pemilik yang tidak diinisialisasi:
gsl::owner<Message*> message;
if (popLast)
message = ReleaseMessage();
delete message; // C26404