alloca()
ক্ষেত্রে হিসাবে গাদা না হয়ে স্ট্যাকের উপর মেমরি বরাদ্দ করে malloc()
। সুতরাং, আমি যখন রুটিন থেকে ফিরে আসি তখন স্মৃতিটি মুক্ত হয়। সুতরাং, আসলে এটি গতিশীলভাবে বরাদ্দ হওয়া মেমরিটি মুক্ত করার আমার সমস্যার সমাধান করে। এর মাধ্যমে বরাদ্দ হওয়া মেমরি মুক্ত malloc()
করা একটি প্রধান মাথাব্যথা এবং যদি কোনওরকমভাবে মিস হয়ে যায় তবে সমস্ত ধরণের স্মৃতি সমস্যা দেখা দেয়।
alloca()
উপরোক্ত বৈশিষ্ট্য থাকা সত্ত্বেও কেন হতাশার ব্যবহার ?
free
(যা স্পষ্টতই একটি সুবিধা), এটির ইনলাইন করার অযোগ্যতা (স্পষ্টতই গাদা বরাদ্দ খুব বেশি ভারী) এবং ইত্যাদি এড়ানোর একমাত্র কারণ alloca
হ'ল বড় আকারের for যে, স্ট্যাক মেমরি টন নষ্ট করা ভাল ধারণা নয়, এবং আপনার স্ট্যাকের ওভারফ্লো হওয়ার সম্ভাবনা রয়েছে। এই যদি হয় তাহলে - ব্যবহারের বিষয়ে বিবেচনা malloca
/freea
alloca
হ'ল স্ট্যাকটি গাদা মতো খণ্ডিত হতে পারে না। এটি হার্ড-রিয়েল-টাইম রান চিরকালের স্টাইল অ্যাপ্লিকেশনগুলির জন্য বা এমনকি সুরক্ষার সমালোচনামূলক অ্যাপ্লিকেশনগুলির পক্ষে কার্যকর প্রমাণিত হতে পারে, যেহেতু ডাব্লুসিআরইউ তখন নিজস্ব সমস্যার সাথে কাস্টম মেমরি পুলগুলিকে অবলম্বন না করে স্থিতিশীলভাবে বিশ্লেষণ করা যেতে পারে (কোনও সাময়িক লোকাল নয়, উপ-অনুকূল উত্স নয়) ব্যবহার)।