Sobes.tech
Junior — Middle

Hogyan van szervezve a tömb szerkezete a memóriában, és hogyan történik a hozzáférés az elemeihez?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a tömbök egymás melletti memóriablokkok, ahol az elemek egymás után helyezkednek el. Minden elem fix méretet foglal el, ami a adattípustól függ.

A tömb egy eleméhez való hozzáférés a cím kiszámításával történik: a tömb alapcíme plusz egy eltolás, ami az elem indexe szorozva az elem méretével. Ez gyors hozzáférést biztosít bármely elemhez index szerint állandó időben.

Példa:

var arr [5]int = [5]int{10, 20, 30, 40, 50}
// az arr memóriában 5 egész szám egymás után van tárolva
fmt.Println(arr[2]) // Kiírja 30-at

Itt az arr[2] az index 2-vel rendelkező elem, melynek címe a tömb kezdőcímének plusz 2 * sizeof(int) lesz.