الذاكرة الديناميكية
تشير الذاكرة الديناميكية إلى الجزء من ذاكرة الحاسوب الذي يتم تخصيصه أو تحريره أثناء تنفيذ البرنامج، على عكس الذاكرة الثابتة التي يتم تخصيصها وقت الترجمة. تُدار هذه الذاكرة عادةً في منطقة الكومة (heap).
تُعد الإدارة الفعالة للذاكرة الديناميكية أمرًا بالغ الأهمية لبناء برامج قابلة للتوسع وفعالة. فهي تسمح للبرامج بالتعامل مع هياكل البيانات وأحمال العمل ذات الأحجام غير المتوقعة دون الحاجة إلى تخصيص كمية ثابتة ومحتمل أن تكون مُهدرة من الذاكرة مسبقًا.
عندما يحتاج البرنامج إلى ذاكرة أثناء وقت التشغيل، فإنه يطلب كتلة من نظام التشغيل أو مدير الذاكرة. تتضمن هذه العملية المؤشرات (pointers)، وهي متغيرات تخزن عناوين الذاكرة. يتحمل المبرمج مسؤولية تحرير هذه الذاكرة صراحةً عندما لم تعد هناك حاجة إليها لمنع تسرب الذاكرة.
تُعد الذاكرة الديناميكية أساسية لتنفيذ هياكل البيانات المعقدة مثل القوائم المرتبطة والأشجار والرسوم البيانية. كما أنها تُستخدم بكثافة في تطبيقات الويب للتعامل مع الملفات التي يرفعها المستخدمون أو حمولات البيانات الكبيرة ذات الأطوال المتغيرة.
تشمل الفوائد الأساسية المرونة، التي تسمح للبرامج بالتكيف مع أحجام الإدخال المختلفة، والاستخدام الفعال للموارد من خلال استهلاك الذاكرة فقط عند الحاجة إليها بشكل فعلي.
تتمثل التحديات الرئيسية في تسرب الذاكرة (الفشل في تحرير الذاكرة)، والتجزئة (تكسر الذاكرة إلى كتل صغيرة غير قابلة للاستخدام)، واحتمالية تجاوز سعة المخزن المؤقت (buffer overflows) إذا لم يتم احترام حدود الذاكرة بدقة.
تشمل المفاهيم ذات الصلة الذاكرة الثابتة، وذاكرة المكدس (stack memory)، وجمع القمامة (garbage collection)، وتسرب الذاكرة. يعد فهم الفرق بين هذه المفاهيم مفتاحًا لتطوير برمجيات قوية.