سؤال

أقوم بتخصيص عدد صغير من أنواع البيانات ، بحجم إجمالي 2 ميجابايت.

أنا فقط أستخدم كومة واحدة فقط ، وهي تعمل بشكل جيد حتى أصل إلى عدد معين من المخصصات ، وأنا متأكد تمامًا من ذلك لأنني علقت تخصيصًا واحدًا حتى تتعطل في اليوم التالي.

حصة = مساحة القرص؟ لا تغطي الوثائق رموز الخطأ لهذه الوظيفة المحددة ، لقد قمت بتوصيل التطبيق وهناك الكثير من الذاكرة المخصصة لهذه العملية. كما أضع نقطة توقف للبيانات على مؤشر الكومة ، ولا ينكسر. مؤشر الكومة على ما يرام عندما أتخطى ، حتى مكالمتي إلى Heapalloc.

غريب جدا..

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

المحلول

حاول تخصيص جزء كبير من الذاكرة (أي 2 ميجابايت) حتى تحصل على الخطأ لتحديد ما إذا كانت المشكلة هي # من الكائنات أو الكومة الكلية. أيضًا ، هل أنت متأكد من أنك لا تخصص أكثر من ذاكرة 2 ميجابايت؟ لقد رأيت هذا الخطأ عندما يتم ضرب حد 2 جيجابايت ، ولكن لم يكن عند 2 ميغابايت إلا إذا كان Fagefile ممتلئًا.

إذا فشل كل شيء آخر ، فاحرص على إعادة التشغيل أو جرب جهازًا مختلفًا.

نصائح أخرى

وفقا لتلك القيم في winnt.h رمز الاستثناء C0000017 خرائط ل STATUS_NO_MEMORY وهو أحد الاستثناءات التي HAPALLOC سوف يرمي. لذلك أنت إما خارج الذاكرة أو كنت تتفوق على أحد المخازن المؤقتة المخصصة وتفسد الكومة.

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