Sobes.tech
Junior — Middle

Ինչպե՞ս կբացատրեք ծրագրավորման մեջ բուրգի հասկացությունը։

sobes.tech AI

Պատասխան AI-ից

Ծրագրավորման մեջ, heap-ը (հավաքը) հիշողության տարածք է, որը օգտագործվում է դինամիկ հիշողության բաշխման համար ծրագրի գործարկման ժամանակ: Վերևից, որտեղ հիշողությունը ավտոմատ կերպով բաշխվում և ազատվում է LIFO սկզբունքով, heap-ում ծրագրավորողը ինքն է կառավարում հիշողության բաշխումը և ազատումը (օրինակ՝ C-ում malloc/free կամ ավտոմատ կառավարման լեզուներում գարշահոտ հավաքիչի միջոցով):

Heap-ը թույլ է տալիս ստեղծել օբյեկտներ և տվյալների կառուցվածքներ, որոնց չափը հայտնի է միայն գործարկման ժամանակ, և պահել դրանք այնքան ժամանակ, քանի դեռ դրանք անհրաժեշտ չեն: Օրինակ՝ iOS-ում Objective-C կամ Swift օբյեկտները սովորաբար բաշխվում են heap-ում, և հիշողության կառավարումը կատարվում է ARC (Ավտոմատ Հղումային Հաշվարկ) միջոցով:

Swift-ում օրինակ:

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

let person = Person(name: "Иван") // օբյեկտը ստեղծվում է heap-ում

Այստեղ, Person օբյեկտը ստեղծվում է heap-ում, և փոփոխականը person պարունակում է հղում այդ օբյեկտին։