Sobes.tech
Junior — Middle

Kako biste objasnili koncept steka u programiranju?

sobes.tech АИ

Одговор од АИ

U programiranju, hrpa (heap) je oblast memorije koja se koristi za dinamičku alokaciju memorije tokom izvršavanja programa. Za razliku od steka (stack), gde se memorija automatski dodeljuje i oslobađa prema principu LIFO, u hrpi programer sam upravlja dodelom i oslobađanjem memorije (na primer, pomoću malloc/free u C ili putem sakupljača smeća u jezicima sa automatskim upravljanjem).

Hrpa omogućava kreiranje objekata i struktura podataka čija je veličina poznata samo tokom izvršavanja, i čuvanje ih dok ne postanu nepotrebni. Na primer, u iOS-u, objekti Objective-C ili Swift obično se dodeljuju u hrpi, a upravljanje memorijom se vrši putem ARC (Automatsko brojanje referenci).

Primer u Swift-u:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

let person = Person(name: "Иван") // objekat se kreira u hrpi

Ovde je objekat Person kreiran u hrpi, a promenljiva person sadrži referencu na taj objekat.