Sobes.tech
Junior — Middle

Dizideki dizinin bellek yapısı nasıl organize edilmiştir ve öğelerine nasıl erişilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da diziler, ardışık bellek bloklarıdır ve öğeler ardışık olarak saklanır. Her öğe, veri türüne bağlı olarak sabit bir boyut kaplar.

Dizi öğesine erişim, adres hesaplamasıyla gerçekleşir: dizinin temel adresi artı, öğenin indeksi ile çarpılan öğe boyutunun toplamı. Bu, herhangi bir öğeye indeksle sabit zamanda hızlı erişim sağlar.

Örnek:

var arr [5]int = [5]int{10, 20, 30, 40, 50}
// arr, bellekte 5 tam sayının ardışık dizisi olarak saklanır
fmt.Println(arr[2]) // 30'u yazdırır

Burada, arr[2] indeksi 2 olan öğedir ve adresi, dizinin başlangıç adresi artı 2 * sizeof(int) olarak hesaplanır.