سؤال

أنا أكتب مدير الذاكرة القائم على القائمة البسيطة في النموذج:

... رأس | كتلة | رأس | كتلة ... مع قائمة مجانية ومجانية.

إذا طُلب من وظيفة RealLoc () تقليل حجم الكتلة ، فهل من الجيد الكتابة فوق بعض البايتات المتخيلات مع الرأس للكتلة التي تم إنشاؤها حديثًا؟ تشير الوثائق التي قرأتها إلى أن هذا "سلوك غير محدد" ولكن هل تعتمد التطبيقات على البيانات التي لا تزال موجودة؟

هل كانت مفيدة؟

المحلول

على الأرجح ، ذهبت الملاحظة المتعلقة بالسلوك غير المحدد على هذا النحو: "إنه غير محدد للوصول إلى أي بايت بعد نهاية الكتلة عند عودة RealLoc".

مثل هذه المواصفات هي على وجه التحديد للسماح لك بوضع رأس في البايتات الزائدة في تنفيذ RealLoc. إن السلوك غير المحدد يعني أنه إذا حاول تطبيق ما القراءة من البايتات (التي ولت مفاهيمية) ، فإنه سيقرأ رأسك ، والذي سيظهر كقمامة للتطبيق ؛ إذا كتب ذلك ، فسيقتل رأسك - لذلك لا ينبغي أن يفعل التطبيق ذلك.

نصائح أخرى

بالتأكيد. تم إعادة تخصيصه ، لذلك تم إصداره الآن من قبل التطبيق وهو ينتمي إلى مديرك. من الطبيعي أن تبدأ في التثبيت مع مؤشرات جديدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top