Sobes.tech
Junior — Middle

Када можемо рећи да објекат или структура није у стеку меморије?

sobes.tech АИ

Одговор од АИ

Objekat ili struktura nisu smešteni na steku memorije ako su dinamički alocirani ili imaju duži vek trajanja koji prevazilazi vreme izvršavanja funkcije.

U iOS-u (i uopšteno u Swift/Objective-C):

  • Lokalne promenljive i strukture se obično smeštaju na stek.
  • Objekti klasa (referentni tipovi) se alociraju na hrpi (heap), a na steku se čuva samo referenca na njih.
  • Ako se objekat kreira putem alloc/init u Objective-C ili putem class u Swift, on se smešta na hrpu.

Primer u Swift-u:

func primer() {
    let lokalnaStruktura = MyStruct() // na steku
    let objekat = MyClass()           // objekat na hrpi, referenca na steku
}

Dakle, ako je promenljiva referenca na objekat klase, sam objekat se nalazi van steka, na hrpi.