Thread overview
Bellek İade Edildi mi Diye Denetlemek
Feb 05, 2018
İbrahim
Feb 05, 2018
cos00kun
Feb 05, 2018
cos00kun
February 05, 2018

Selamün Aleyküm;

Şöyle basit bir kod düşünelim:

Button* button = new Button("button");
delete button;

Burada bellek iadesi yapıldı lakin bellek iadesi yapılıp yapılmadığını nasıl kontrol edebiliriz? Ben şöyle yapıyorum:

button = nullptr;
delete button;

if (button == nullptr)
 cout << "Bellek iade edilmiş\n";
else
 cout << "Bellek iade edilmemiş\n";

Bu şekilde doğru mu? Eğer nesneyi nullptr'a eşitlemezsem sadece delete button; ile koşul yanlış çalışıyor. Daha mantıklı bir yolu var mı? Ya da aslında null'a eşitlememizin bile gereği yok mu?
Teşekkürler.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 05, 2018

AleykumSelam
Bunu çöp toplayıcı yapmıyormu ki neden iade ediyoruz ?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 05, 2018

özür dilerim C++ koduymuş yeni gördüm cout komutundan :blush:

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 05, 2018

Yaptığın gibi nullptr gibi özel bir değer atamak dışında denetlemek olanaksız. Oradaki hata, nullptr atamasını delete'ten sonra yapman gerekiyor.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]