---
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 لتعيين الذاكرة ثم تمرير المؤشر إلى دالة أخرى أكثر فاعلية من إعادة إنشاء الدالة البنية.