هل الذاكرة المخصصة خالية؟

جدول المحتويات:

هل الذاكرة المخصصة خالية؟
هل الذاكرة المخصصة خالية؟
Anonim

الذاكرة المخصصة باستخدام الدالتين malloc و calloc لا يتم تفكيكها من تلقاء نفسها. ومن ثم يتم استخدام الطريقةfree، عندما يتم تخصيص الذاكرة الديناميكي. يساعد على تقليل الفاقد في الذاكرة عن طريق تحريرها.

كيف يتم تحرير الذاكرة المخصصة؟

في C ، يتم استخدام وظيفة المكتبة malloc لتخصيص كتلة من الذاكرة على الكومة. يصل البرنامج إلى هذه الكتلة من الذاكرة عبر مؤشر يعود malloc. عندما لا تكون هناك حاجة للذاكرة ،يتم تمرير المؤشر لتحريرالذي يلغي تخصيص الذاكرة بحيث يمكن استخدامها لأغراض أخرى.

ماذا يحدث إذا لم تقم بتحرير الذاكرة المخصصة؟

في معظم الحالات ، لا يكون إلغاء تخصيص memory قبل الخروج من البرنامج مباشرة. سيستعيد نظام التشغيل ذلك على أي حال.مجانيسيتطرق ويظهر في الكائنات الميتة ؛ نظام التشغيل لا. النتيجة: كن حذرًا مع "أجهزة كشف التسرب" التي تحسب التخصيصات.

هل تخصيص الذاكرة مكلف؟

قياس ساذج لتكلفة تخصيص وتحرير كتل كبيرة من الذاكرة من شأنه أن يستنتج أنها تكلف حوالي 7.5 ميكرو ثانية لكل تخصيص /زوج مجاني. ومع ذلك ، هناك ثلاث تكاليف منفصلة لكل ميغا بايت لعمليات التخصيص الكبيرة.

هل يمكن إعادة تخصيص مساحة الذاكرة المخصصة إذا كانت الإجابة بنعم كيف؟

وظيفة realloc تخصص أو تعيد تخصيص أو تحرر كتلة الذاكرة المحددة بواسطة old_blk بناءً على القواعد التالية: إذا كانتold_blk هي NULL، فإن كتلة جديدة من الذاكرة بحجم بايت هوالمخصصة. إذا كان الحجم صفرًا ، يتم استدعاء الوظيفة المجانية لتحرير الذاكرة المشار إليها بـ old_blk.

موصى به: