هایپر سورس

مرجع کاربردی برنامه نویسان ایـــرانی

حافظه های هیپ به زبان ساده به همراه مثال


به غیر ازData ,  Code , Stack , محل دیگری هم برای تخصیص حافظه بکار می رود که به آنHeap  می گوییم. وقتی که توسط دستوراتی مثل malloc یا alloc یا ... حافظه ای را از سیستم میگیریم , این حافظه در هیپ سیستم اختصاص داده میشود.در واقع از هیپ برای تخصیص حافظه به صورت دینامیک استفاده میشود.
این نکته هم باید ذکر شود که در هر برنامه ای لزوما هیپ نداریم و وجود آن بستگی دارد به زبانی که برای برنامه نویسی استفاده شده است.
به طور استاندارد دو نوع هیپ برای برنامه در نظر گرفته میشود که عبارتند از :

Near Heap و Far Heap

اندازه Near heap محدود به 32 کیلوبایت است و برای رفع محدودیت از Far heap

استفاده میشود و تفاوت آنها در نحوه آدرس دهی است.
طرف حساب ما متغیرهای نوع دینامیک هستند که در پشته سیستم ادرس دهی میشوند

هیپ,حافظه هیپ,Heap,تفاوت حافظه های هیپ با stack,stack,حافظه stack,use Heap,malloc

 در زیر مثالی از دونوع برنامه به زبان C اورده ایم که در مثال اول نحوه ذخیره متغیر در Stack و در مثال دوم نحوه استفاده و ذخیره در Heap بیان شده است

//On Stack
#include <stdio.h>

double multiplyByTwo (double input) {
  double twice = input * 2.0;
  return twice;
}

int main (int argc, char *argv[])
{
  int age = 30;
  double HsValue = 12345.67;
  double myList[3] = {1.2, 2.3, 3.4};

  printf("double your salary is %.3f\n", multiplyByTwo(salary));

  return 0;
}


//Result : double your salary is 24691.340


2- Heap
//on heap

#include <stdio.h>
#include <stdlib.h>

double *multiplyByTwo (double *input) {
  double *twice = malloc(sizeof(double));
  *twice = *input * 2.0;
  return twice;
}

int main (int argc, char *argv[])
{
  int *age = malloc(sizeof(int));
  *age = 30;
  double *salary = malloc(sizeof(double));
  *salary = 12345.67;
  double *myList = malloc(3 * sizeof(double));
  myList[0] = 1.2;
  myList[1] = 2.3;
  myList[2] = 3.4;

  double *twiceSalary = multiplyByTwo(salary);

  printf("double your salary is %.3f\n", *twiceSalary);

  free(age);
  free(salary);
  free(myList);
  free(twiceSalary);

  return 0;
}



cleocin cream cleocin cream cleocin ovuli

توجه :

بنا به درخواست کاربران عزیز وبسایت، گروه برنامه نویسی و طراحی راه اندازی کردیم که امیدواریم جایی برای به اشتراک گذاشتن دانسته ها،تجارب برنامه نویسی و طراحی کاربران باشد.
جهت عضویت اینجا در گروه اینجا کلیک کنید .


نام محصول : حافظه های هیپ به زبان ساده به همراه مثال خرید
قیمت : 0 تومان بعد از پرداخت به صفحه دانلود هدایت خواهید شد
اگر میخواهید لینک دانلود را در ایمیل خود نیز داشته باشید ، ادرس ایمیلتان را هم وارد نمائید

    
در صورتی که سوالی راجع به این آموزش دارید در بخش نظرات همین پست مطرح و از ارسال ان از بخش ارتباط با ما خود داری نمائید
در صورتی که تمایل دارید بعد از درج اخرین پست در این زمینه از طریق پیامک اگاه شوید ، شماره خود را در باکس زیر بنویسید
نام شما (فارسی)
شماره موبایل
موضوع ها
در صورت امکان برای ثبت شماره خود ، از خطوط ایرانسل استفاده نمائید ، در صورتی که در خطوط همراه اول پیامک های مارا دریافت نمیکنید ، دلیل ان میتواند تلقی شدن پیامک های اگاه سازی ما از نوع تبلیغاتی توسط اپراتور شما و عدم ارسال ان در به شما باشد (این امر مواقعی اتفاق میافتد که دریافت پیام های تبلیغاتی از طرف شما یا اپراتور بلاک شده باشد)
نویسنده : ParSa رتبه کاربر : تعداد پست های کاربر : 146 این کاربر تا به حالا توسط 0 کاربر مورد تقدیر و تشکر واقع شده پیام نویسنده :


عادل پارسا هستم کارشناس مهندسی نرم افزار
کار برنامه نویسی رو از سال 86 با زبان C شروع کردم و الان بیشتر از 6 ساله که بصورت حرفه ای در زمینه طراحی وب ، برنامه نویسی ویندوز ، وب ، ربات های وبگرد و ... فعالیت دارم

فعالیت و مهارت ها :

Asp.Net MVC C# / C/C++ Android Programming (Java)
Css3 & Html5 Js & Jquery Advanced Ajax Bootstrap & ResponsiVe Design
Reporting Tools SEO Sql Server SQLite



هم اکنون نـــظر بدهید
نظر دهید
   
  
 
 
   


ارتباط با ما

double click for close / دوبار کلیک برای بستن پنجره