3.7 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			3.7 KiB
		
	
	
	
	
	
	
	
title, localeTitle
| title | localeTitle | 
|---|---|
| Dynamic Memory Allocation | تخصيص الذاكرة الديناميكية | 
تخصيص الذاكرة الديناميكي في C ++
ما هو تخصيص الذاكرة الديناميكي في C ++؟
- يشير تخصيص الذاكرة في C ++ إلى الذاكرة المخصصة للمتغيرات التي تستخدمها في البرنامج.
- تخصيص الذاكرة الديناميكي هو الذاكرة التي يتم تخصيصها للمتغيرات في وقت التشغيل كما يتم تحديد مقدار الذاكرة المطلوبة في وقت التشغيل.
- تأتي هذه الذاكرة من كومة الذاكرة المؤقتة ، في حين أن المتغيرات غير الساكنة والمتغيرات المحلية تحصل على ذاكرة من المكدس .
- في C ++ ، يمكن للمبرمج إجراء عمليات تخصيص الذاكرة يدوياً ، ويسمى تخصيص الذاكرة الحيوية .
- كان من الممكن في C القيام بتخصيص الذاكرة الديناميكية ، باستخدام وظائف calloc و malloc لتخصيص الذاكرة واستخدام وظيفة حرة لإزالة تخصيص الذاكرة الديناميكية.
- في C ++ ، بالإضافة إلى أعلاه ، هناك وظيفتان ، جديدتان وحذفان لأداء تخصيص الذاكرة الديناميكية وإلغاء التخصيص.
مشغل جديد
- يمكن للمشغل newمنح الذاكرة مبرمج من كومة الذاكرة المؤقتة (إذا كانت متوفرة). إذا كانت الذاكرة التي يطلبها المبرمج متاحة ، يقوم المشغلnewبتهيئة الذاكرة ثم يقوم بإرجاع العنوان (المرجع) للذاكرة المخصصة.
- بناء الجملة
 pointer-variable-type=pointer-variable-typedata-type;جديدdata-type;
 المثال 1:int *ptr= newint;
 المثال 2:int *ptr2= newint[10];
 هنا ، يعدpointer-variable-typeمؤشرًاdata type. يمكن أن يكونdata-typeint أو char وما إلى ذلك أو نوع بيانات المعرفة من قبل المستخدم.
مشغل DELETE
- 
تقع على عاتق المبرمج مسؤولية إلغاء تخصيص الذاكرة الموزعة ديناميكياً ، وإلا لن تكون الذاكرة متوفرة لإعادة توزيعها حتى نهاية البرنامج. 
- 
لإلغاء تخصيص الذاكرة ، يمكن deleteالمشغل ويمكن استخدامه بواسطة المبرمج.
- 
بناء الجملة 
 حذفpointer-type-variable;
 على سبيل المثال ، لتحرير الذاكرة المخصصة في المثال 1 أعلاه ، فإننا نكتب:
 delete ptr;
 وبالمثل ، على سبيل المثال 2 ، يمكن تحرير الذاكرة من خلال:
 delete ptr2؛تسريبات الذاكرةتحدث التساؤلات عندما تفشل في إلغاء تخصيص الذاكرة الديناميكية التي قمت بتخصيصها من خلال المشغل Newفي نهاية البرنامج. إذا لم تقم بإلغاء تخصيصها مع عامل التشغيل Delete ، فسيستمر الكمبيوتر في إنشاء ذاكرة جديدة في الذاكرة المؤقتة في كل مرة يتم فيها تشغيل البرنامج. يؤدي هذا إلى إبطاء الكمبيوتر لأنه لم يتم حذف الذاكرة وتقلل الذاكرة المتوفرة لديك.