داخل لغة الـ C يتم حجز و تحرير الذاكره بإستخدام malloc و realloc و free، اما داخل الـ Cpp فيتم حجز و تحرير الذاكره بإستخدام new و delete للكائنات و new[] و delete[] للمصفوفات.
جميع الداول السابقه داخل نظام تشغيل ويندوز تقوم بإستدعاء HeapAlloc و HeapReAlloc و HeapFree و هم ما اقوم بإستخدامهم داخل برامجى.
الدوال السابقه (فى السطر السابق فقط) تطلب منك الـ Heap الذى تريد اجراء العمليات داخله سواء كانت حجز او تحجيم او تحرير و يتم تمرير لها GetProcessHeap.
المشكله تحدث عندما اقوم داخل الدوال التى اصنعها بإستخدام GetProcessHeap حيث ان الفيجوال ستديو لا يستخدم الـ Heap الإفتراضى للـ Process قيد الإنشاء و انما يستخدم واحد اخر لأغراض الـ Debug و بالتالى داخل الكود و اثناء عمل البرنامج داخل الفيجوال ستديو لا يمكن استدعاء delete لذاكره تم حجزها بإستخدام HeapAlloc حيث ان delete تقوم بالحذف من داخل الـ Debug Heap الخاص بالفيجوال ستديو و بالتالى يتوقف عمل البرنامج و يظهر exception لمحاولة تحرير ذاكره ليست ملكى، فى حين انه عند عمل البرنامج داخل مساحة ذاكرته الخاصه بعيدا عن الفيجوال ستديو تعمل delete جيدا.
سؤالى هو كيف استطيع تخطى هذه المشكله بالله عليكم؟؟
و الله ولى التوفيق

