কম্পিউটার

সি ++ এ সঠিক স্ট্যাক এবং হিপ ব্যবহার?


স্ট্যাক − ফাংশনের ভিতরে ঘোষিত সমস্ত ভেরিয়েবল স্ট্যাক থেকে মেমরি গ্রহণ করবে। সুতরাং, একটি ফাংশনের ভিতরে যেকোন লোকাল ভেরিয়েবল স্ট্যাকে থাকে।

স্তূপ − এটি প্রোগ্রামের অব্যবহৃত মেমরি এবং প্রোগ্রাম চালানোর সময় গতিশীলভাবে মেমরি বরাদ্দ করতে ব্যবহার করা যেতে পারে। তাই যে ফাংশনটি ঘোষণা করেছে তার থেকে যদি আমরা কিছু বেশি দিন বাঁচতে চাই, তাহলে আমাদের অবশ্যই এটিকে স্তূপে বরাদ্দ করতে হবে।

উদাহরণ

int main() {
   int a; //get memory allocated on stack.
   int *ptr=new int[7]; //memory for 7 integers allocated on heap.
}

হিপ মেমরির প্রধান সমস্যা হল ফ্র্যাগমেন্টেশন যেখানে মেমরির ঘাটতির সমস্যাটি স্ট্যাকের মধ্যে বেশি দেখা যায়। মেমরির আকার স্তূপে পরিবর্তন করা যেতে পারে যা স্ট্যাকের মধ্যে পরিবর্তন করা যায় না।


  1. স্ট্যাক এবং হিপের মধ্যে পার্থক্য

  2. C++ এ দ্বিপদ স্তূপের মেমরি উপস্থাপনা

  3. C++ STL(3.5) এ স্ট্যাক

  4. C++ এ দ্বিপদ স্তূপ?