آشنایی با عملگرهای new و delete (تعریف متغیرها و آرایه های پویا)


آشنایی با عملگرهای new و delete (تعریف متغیرها و آرایه های پویا)
برای خرید این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

عملگرهای new و delete (تعریف متغیرها و آرایه‌های پویا):


در جلسه قبل در مورد آرایه و اشاره گرها صحبت کردیم. در این جلسه با عملگرهای new و delete در زبان سی پلاس پلاس آشنا می‌شوید.
عملگرهای new و delete به پویایی برنامه کمک می‌دهند. وقتی یک متغیر را تعریف می‌کنیم، از لحظه ایی که تعریف می‌شود تا پایان بلاک جاری خود فضایی از حافظه را در اختیار گرفته و حتی اگر شما از آن متغیر استفاده هم نکنید فضا اشغال شده است. در برنامه‌هایی که به صورت کاربردی ساخته می‌شوند، کارایی برنامه وابستگی شدید به میزان فضای استفاده شده حافظه دارد، به این معنی که اگر شما واقعا به فضایی از حافظه در برنامه خود احتیاج ندارید، نباید آن را بیهوده نگه‌ داشت و هر چقدر فضا آزادتر باشد امکان بالا رفتن سرعت و بهینه شدن برنامه شما بیشتر می‌شود.
با استفاده از عملگر new می‌توان فضایی از حافظه را گرفت و برای برگرداندن حافظه گرفته شده توسط دستور new از دستور delete استفاده می‌کنیم. با استفاده از این عملگرها می توانیم متغیرها و آرایه های پویا داشته باشیم.

 

متغیرهای پویا:
مثال: در این مثال یک فضای 4 بایتی بدون نام از حافظه گرفته می‌شود. آدرس آن را به *p  یا اشاره گر p می‌دهد. اشاره گر p به آن وصل  و نام آن خانه *p می‌شود . پس با new فضایی از حافظه را می‌گیریم و با delete فضای گرفته شده را پس می‌دهیم.

 

Int *p=new int;
*p=145;
Cout<<*p;
Delete p;

 

خروجی:
 

خروجی 1


آرایه‌های پویا:
مثال: در برنامه زیر 10 خانه از حافظه را با کلمه کلیدی new گرفته شده و مقدار آرایه را از کاربر دریافت و سپس مقادیر را چاپ می‌کند. و بعد از اجرای برنامه حافظه گرفته شده را با کلمه کلیدی delete پس می‌دهیم.

 

int *p=new int[10];
for ( int i=0 ; i<10 ; i++ )
  {
       cout<< “ Enter Number [ “ <<i<< “ ] : ” ;
        cin>> a[i];
   }
for ( int i=0 ; i<10 ; i++ )
  {
       cout<< *( a+ i )<<”\t”;
   }
 delete a;

 

خروجی:

 

خروجی 2

 

 
مثال: برنامه زیر مانند برنامه قبلی می‌باشد، با این تفاوت که می‌توانیم مقدار خانه‌های آرایه را از کاربر دریافت کنیم.

int n;
cout<<”Enter Number For Array : “;
cin>>n;
int *p=new int[n];
for ( int i=0 ; i<n ; i++ )
  {
       cout<< “ Enter Number [ “ <<i<< “ ] : ” ;
        cin>> a[i];
   }
for ( int i=0 ; i<n ; i++ )
  {
       cout<< *( a+ i )<<”\t”;
   }
 delete a;

 

خروجی:
 

خروجی3

 


دوست درسمنی عزیز، امیدواریم از این آموزش لذت برده باشید.
برای یادگیری این مبحث می‌توانید این درس را تهیه کنید و از فایل‌ها و ویدئو این بخش استفاده کنید.
شما عزیزان می‌توانید سوالات خود را در بخش انجمن پرسش و پاسخ مطرح کنید و همچنین منتظر انتقادات و پیشنهادات مفید شما در بخش نظرات هستیم تا ما را در کیفیت بهتر آموزش‌هایمان یاری کنید.


با امید موفقیت و شادی برای شما دوست درسمنی عزیزsmiley

انجمن ++C کاران درسمن

 


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات 16 جلسه
مدت زمان 621 دقیقه
حجم دوره 2/39 گیگابایت
سطح مهارت پیشرفته
وضعیت دوره پایان یافته
تعداد دانشجویان 122
: میانگین امتیاز

70,000تومان
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی
مهدی عباسی

درباره مدرس :

مدیر‌ عامل‌ شرکت آریا‌ نرم‌‌ افزار دارنده مدرک کارشناسی‌ ارشد مهندسی کامپیوتر 12‌ سال سابقه تدریس دروس کامپیوتر را در دانشگاههای دولتی، آزاد، پیام‌نور ملایر، شهیدشمسی‌پور تهران و تدریس برنامه‌نویسی در ... ر انیستیتو ایزایران، مجتمع فنی و موسسه راه‌آینده تهران دارا میباشد و تا به حال راهنمایی انجمنهای علمی دانشگاه و صدها پروژه دانشجویی را برعهده داشته است. تخصص اصلی: با داشتن گواهی‌نامه‌های معتبر تدریس از انیستیتو‌ ایزایران، راه آینده‌تهران و سازمان‌فنی‌حرفه‌ای، تدریس و آموزش‌ دروس کامپیوتر، ‌برنامه‌نویسی کامپیوتر و کلاسهای کنکور کارشناسی و کارشناسی‌ارشد میباشد.همچنین تجربه داوری و نظارت مسابقات برنامه‌نویسی کشوری‌ACM را در سالهای متعدد داشته و تیم مورد رهبری ایشان در 3سال متوالی مقام اول مسابقات کشوری را از آن خود کرده است.ایشان مقالاتی در زمینه شبکه‌های کامپیوتری، تکنیک‌های وزارت دفاع و ... به ثبت رسانده و مشاور و کارشناس در طراحی و برنامه نویسی بیش از 50‌برنامه کاربردی تحت وب و ویندوز و موبایل میباشد. افتخارات دیگر:کسب مقام دوم ایده‌های برتر در مسابقات استارت‌آپ و بکند کشوری را نام برد.بیشتر بدانید