Junior — Middle
Derleyicinin dinamik alan (yığın) içinde otomatik olarak bellek ayırdığı durumlar nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go derleyicisi, aşağıdaki durumlarda otomatik olarak yığın (heap) belleği ayırır:
- Bir değişken, tanımlandığı fonksiyonun çalışma süresinden daha uzun yaşayacaksa (kaçış analizi). Örneğin, bir yerel değişkenin adresi bir fonksiyondan döndürülüyorsa veya daha uzun süre yaşayan bir yapıya kaydediliyorsa.
- Değişken çok büyükse veya boyutu derleme sırasında bilinmiyorsa.
Örnek:
func create() *int {
x := 10
return &x // x değişkeni "kaçıyor" heap'e, çünkü bir gösterici döndürülüyor
}
Burada, x değişkeni, göstericinin fonksiyon dışına çıktıktan sonra geçerli kalması için heap'e yerleştirilecektir. Derleyici, kodu analiz eder (kaçış analizi) ve belleğin nerede ayrılacağına karar verir.