Sobes.tech
Junior — Middle

როდის შეიძლება ითქვას, რომ ობიექტი ან სტრუქტურა მეხსიერების სტეკში არ არის?

sobes.tech AI

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

Объект বা কাঠামো ডাইনামিকভাবে বরাদ্দ করা হলে বা দীর্ঘস্থায়ী জীবনকাল থাকে যা কার্যকারিতা সময়ের চেয়ে বেশি, তখন তারা স্মৃতি স্ট্যাকের মধ্যে থাকে না।

iOS-এ (এবং সাধারণত Swift/Objective-C-এ):

  • স্থানীয় পরিবর্তনশীল এবং কাঠামো সাধারণত স্ট্যাকে রাখা হয়।
  • ক্লাসের অবজেক্ট (রেফারেন্স টাইপ) হিপে বরাদ্দ করা হয়, এবং স্ট্যাকে কেবল তাদের জন্য একটি রেফারেন্স সংরক্ষিত হয়।
  • যদি একটি অবজেক্ট alloc/init এর মাধ্যমে Objective-C-এ বা class এর মাধ্যমে Swift-এ তৈরি হয়, তবে এটি হিপে রাখা হয়।

Swift-এ উদাহরণ:

func উদাহরণ() {
    স্থানীয় কাঠামো = MyStruct() // স্ট্যাকে
    অবজেক্ট = MyClass() // হিপে, স্ট্যাকে রেফারেন্স
}

অতএব, যদি একটি পরিবর্তনশীল ক্লাসের অবজেক্টের জন্য একটি রেফারেন্স হয়, তবে অবজেক্টটি নিজে স্ট্যাকে নয়, হিপে অবস্থিত।