Merhaba arkadaşlar, D ' de işaretçiler çöp toplayıcı tarafından belleğe geri verilir mi?
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
September 15, 2017 İsaretçiler | ||||
---|---|---|---|---|
| ||||
Merhaba arkadaşlar, D ' de işaretçiler çöp toplayıcı tarafından belleğe geri verilir mi? -- |
September 15, 2017 İsaretçiler | ||||
---|---|---|---|---|
| ||||
Posted in reply to DarthRagnos | Merhaba, D dilinde çöp toplayıcı var yani RAM'de oluşturduğumuz objeler dil tarafından otomatik siliniyor. Çöp toplayıcı özelliği isteğe bağlı olarak devreden çıkartılabiliyor. Bu durumda hafızayı geri verme işleri kullanılıcıya bırakıyor. Belki "işaretcilerin belleğe geri verilmesi" demek yerine "bellekteki objelerimizin örneklerinin geri verilmesi" demek daha uygun olabilir. Çünkü örneğin; int *ptr = null; --> Bu işaretçi zaten hiç bir bellek kullanmıyor geri verilen işaretçi gösterdiği hafıza. Saygılar -- |
September 15, 2017 İsaretçiler | ||||
---|---|---|---|---|
| ||||
Posted in reply to kerdemdemir | (Öncelikle, Erdemdem, RAM demek tam doğru değil çünkü başka bir sürü şey gibi işlev çağrı yığıtı (call stack) da RAM'dedir.) Belki şöyle söylemek daha uygun: D runtime'ın ayırıp kullandırdığı bellek alanları (örneğin diziler, new ile ayrılan nesneler, vs.), işleri bittiğinde çöp toplayıcı tarafından geri alınır. Belki söylenmek istenen o değildi ama işaretçiler de çöp toplayıcı tarafından geri verilir çünkü hem geri verilen bir nesnenin üyesi olabilirler hem de yaygın olarak gerekmese de, bir işaretçinin alanı bile D runtime'dan (çöp toplayıcıdan) ayrılmış olabilir:
Ali -- |
September 16, 2017 İsaretçiler | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Cevaplar için teşekkürler -- |
September 16, 2017 İsaretçiler | ||||
---|---|---|---|---|
| ||||
Posted in reply to DarthRagnos | Ali Abi hafıza yerine heap kullansaydım doğru olurmuydu acaba yani D dilinden bahsederkende "D runtime'ın ayırdığı bellek" yerine "heap" diyebilirmiyim. Birde "heap"'in türkçesini biliyormusunuz acaba? Erdemdem -- |
September 16, 2017 İsaretçiler | ||||
---|---|---|---|---|
| ||||
Posted in reply to kerdemdemir | Alıntı (kerdemdemir): >Birde "heap"'in türkçesini biliyormusunuz acaba? Heap öbek, bellek yığını, alt yığın olarak Türkçeye çevrilmiş. -- |
September 16, 2017 İsaretçiler | ||||
---|---|---|---|---|
| ||||
Posted in reply to erdem | D runtime'ın yönettiği belleğe "garbage collection heap" deniyor. Yalnızca "heap" tam doğru olmuyor çünkü D'de de kullanabildiğimiz C'nin malloc'uyla ayrılan belleğe de "heap" deniyor. Ali -- |