Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ذاكرة Stack مقابل Heap

جزء من قسم Logic & Flow في رحلة C على Coddy — الدرس 31 من 63.

عندما يتم تشغيل برنامج C الخاص بك، فإنه يستخدم منطقتين متميزتين من الذاكرة: المكدس (stack) والكومة (heap). إن فهم الفرق بين منطقتي الذاكرة هاتين أمر بالغ الأهمية لبرمجة C الفعالة، خاصة عند العمل مع المؤشرات وتخصيص الذاكرة الديناميكي.

يُستخدم **المكدس (stack)** لتخصيص الذاكرة الثابت. هذا هو المكان الذي يتم فيه تخزين متغيراتك المحلية، ومعلمات الدوال، ومعلومات استدعاء الدوال. تتم إدارة المكدس تلقائيًا بواسطة النظام - فعندما تعلن عن متغير محلي، يتم تخصيص ذاكرة في المكدس، وعندما يخرج المتغير عن النطاق، يتم تحرير تلك الذاكرة تلقائيًا.

void function() {
    int x = 10;  // يتم تخصيصه في المكدس (stack)
    char arr[100];  // يتم تخصيصه أيضاً في المكدس (stack)
    // يتم تحرير الذاكرة تلقائياً عند انتهاء الدالة
}

تُستخدم الـ heap لتخصيص الذاكرة الديناميكي. هذا تجمع أكبر من الذاكرة يمكنك طلبه أثناء تنفيذ البرنامج.

على عكس المكدس (stack)، تتطلب الكومة (heap) إدارة يدوية - يجب عليك طلب الذاكرة صراحةً ثم تحريرها لاحقاً عند الانتهاء منها. يمنحك هذا تحكماً أكبر ولكن أيضاً مسؤولية أكبر.

الفرق الجوهري يكمن في الإدارة: ذاكرة المكدس (stack memory) تلقائية ومحدودة الحجم، بينما ذاكرة الكومة (heap memory) يدوية وأكبر بكثير. في الدروس القادمة، ستتعلم كيفية التعامل مع ذاكرة الكومة باستخدام دوال مثل malloc() و free().

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow