freeCodeCamp/guide/arabic/c/malloc/index.md

39 lines
2.6 KiB
Markdown

---
title: malloc
localeTitle: malloc
---
# malloc في C
malloc () هي دالة مكتبة تسمح C لتخصيص الذاكرة بشكل حيوي من الكومة. كومة الذاكرة المؤقتة هي منطقة من الذاكرة حيث يتم تخزين شيء ما.
malloc () جزء من stdlib.h ولتتمكن من استخدامه تحتاج إلى استخدام `#include <stdlib.h>` .
## باستخدام Malloc
يخصص malloc () ذاكرة حجم المطلوب وإرجاع مؤشر إلى بداية كتلة المخصصة. للاحتفاظ بالمؤشر المرتجع ، يجب علينا إنشاء متغير. يجب أن يكون المؤشر من نفس النوع المستخدم في بيان malloc.
سنقوم هنا بإعداد مؤشر إلى مجموعة من النمل قريباً
`int* arrayPtr;
`
بخلاف اللغات الأخرى ، لا تعرف C نوع البيانات الذي تقوم بتخصيص الذاكرة له ؛ يجب أن يقال. لحسن الحظ ، لدى C دالة تسمى `sizeof()` يمكننا استخدامها.
`arrayPtr = (int *)malloc(10 * sizeof(int));
`
استخدم هذا البيان malloc لوضع الذاكرة جانباً لمجموعة من 10 أعداد صحيحة. بما أن الأحجام يمكن أن تتغير بين أجهزة الكمبيوتر ، فمن المهم استخدام الدالة sizeof () لحساب الحجم على الكمبيوتر الحالي.
ستحتاج أي ذاكرة مخصصة أثناء تنفيذ البرنامج إلى تحريرها قبل إغلاق البرنامج. `free` الذاكرة ، يمكننا استخدام وظيفة free ()
`free( arrayPtr );
`
سيؤدي هذا البيان إلى إلغاء تخصيص الذاكرة التي تم تخصيصها مسبقًا. لا يأتي C مع `garbage collector` مثل بعض اللغات الأخرى ، مثل Java. نتيجة لذلك ، سيتم تخصيص الذاكرة التي لم يتم تحريرها بشكل صحيح بعد إغلاق البرنامج.
# قبل أن تذهب ...
## مراجعة
* يتم استخدام Malloc لتخصيص الذاكرة الحيوية وهو مفيد عندما لا تعرف مقدار الذاكرة المطلوبة أثناء وقت التحويل البرمجي.
* تخصيص الذاكرة يسمح بوجود كائنات خارج نطاق الكتلة الحالية.
* C يمر بقيمة بدلاً من المرجع. استخدام malloc لتعيين الذاكرة ثم تمرير المؤشر إلى دالة أخرى أكثر فاعلية من إعادة إنشاء الدالة البنية.