(تم اقتباس جزء من الاجابة من عضو في منتدى Arabteam2000 )
ال Heap او ربما الكومة بالعربية (لست متاكد كمن ترجمتها)
هو مكان بالذاكرة يتم تحديد مساحته وقت ترجمة البرنامج او حتى عند تشغيله
ولا يتم الحجز او اتفاعل بالذاكرة الهيب الا عند استحدام دوال ك HeapCreate , HeapAllocate,DestroyHeap, الموجودة على ما اعرف في مكتبة
ntdll.dll يعني ان المبرمج من يقوم بالحجز بداخل الهيب ولا يتم تلقائيا مثل ال stack كما نا القيام بعملية الحجز بشكل يدوي فانه يجب تحرير الذاكرة بشكل يدوي ايضا وان لم يتم تنفيذ ذلك قد يحدث Memory Leak مما سيؤدي لانهاؤ البرنامج بشكل غير متوقع
ايضا الهيب بامكانك ان تخزن مساحة كبيرة عليه عكس ال stack الذي اذا خزنت عليه متغيرات كبيرة قد يحدث Stack overflow
كما ايضا في الهيب يتم الحجز بشكل ديناميكي حيث يمكن الحجز اثناء تنفيذ البرنامج مثلا نسال المستخدم عن عدد عناصر المصفوفة ونحجزها
باختصار الهيب
يتم حجز المتغيرات فيها من قبل المبرمج
مساحة كبيرة
تحتاج إلى مؤشر لاستقبال العنوان المحجوز والتعامل معه
يتم الحجز بشكل ديناميكي حيث يمكن الحجز اثناء تنفيذ البرنامج
WinDBG x86 & 64 offline
https://developer.microsoft.com/en-us/wi...ws-10-sdk/