تعلم لغة C - الدرس الثاني عشر: إدارة الذاكرة الديناميكية (Dynamic Memory)
في هذا الدرس المتقدم، سنغوص في أحد أهم المفاهيم في لغة C وهو إدارة الذاكرة الديناميكية. هذا الموضوع يعتبر حجر الأساس في بناء البرامج الكبيرة والاحترافية، لأنه يمنحك القدرة على التحكم الكامل في الذاكرة أثناء تشغيل البرنامج.
ما هي الذاكرة الديناميكية؟
الذاكرة الديناميكية هي الذاكرة التي يتم تخصيصها أثناء تنفيذ البرنامج، وليس أثناء الترجمة. وهذا يعني أنك تستطيع تحديد حجم البيانات أثناء التشغيل.
أهمية إدارة الذاكرة
- تقليل استهلاك الموارد
- إنشاء برامج مرنة
- بناء أنظمة معقدة مثل قواعد البيانات
الدوال الأساسية
malloc
int *ptr = (int*) malloc(sizeof(int));
calloc
int *arr = (int*) calloc(5, sizeof(int));
realloc
arr = realloc(arr, 10 * sizeof(int));
free
free(arr);
مثال شامل
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d",&n);
int *arr = (int*) malloc(n*sizeof(int));
for(int i=0;i<n;i++)
scanf("%d",&arr[i]);
for(int i=0;i<n;i++)
printf("%d ",arr[i]);
free(arr);
return 0;
}
أخطاء يجب تجنبها
- نسيان free
- الوصول إلى ذاكرة غير مخصصة
نصائح احترافية
كلما تعلمت إدارة الذاكرة، أصبحت مبرمجًا أقوى. حاول دائمًا تحرير الذاكرة بعد الاستخدام.