Sobes.tech
Junior — Middle

როგორ ხორციელდება მონაცემების შენახვა დინამიკულ მეხსიერებაში (heap)?

sobes.tech AI

პასუხი AI-სგან

დინამიური მეხსიერება (heap) არის მეხსიერების ზონა, სადაც პროგრამა საჭიროებისამებრ გამოყოფს და თავისუფლდებს მეხსიერებას შესრულების დროს.

მონაცემების შენახვა heap-ში ხდება შემდეგნაირად:

  • როდესაც მოთხოვნა მეხსიერებაზე (მაგალითად, C-ში malloc-ის ან C++-ში new-ის საშუალებით) ხდება, გამოყოფს საჭირო ზომის ბლოკს.
  • მეხსიერება არ არის ორგანიზებული როგორც სტეკი, ამიტომ ობიექტები შეიძლება იყოს განთავსებული ნებისმიერ ადგილას.
  • მეხსიერების მართვა ეკისრება პროგრამისტს (შესაბამისი ენებში, სადაც არ არის გარბიჯის კრეტორი) ან გარბიჯის კრეტორს (GC-ით ენებში).
  • iOS-ზე, Objective-C ან Swift-ის გამოყენებისას, ობიექტები ჩვეულებრივ გამოყოფილია heap-ში, ხოლო მეხსიერების მართვა ხდება ARC-ის (ავტომატური მითითებების რაოდენობის გამოთვლა) საშუალებით.

Swift-ის მაგალითი:

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

let person = Person(name: "Ivan") // ობიექტი შექმნილია heap-ში