PDA

View Full Version : سوال: مشکل با Stack



woeful
یک شنبه 02 خرداد 1389, 17:52 عصر
سلام

نمیدونم سوالم جاش اینجا هست یا نه ( فک میکنم درسته )

1- در مورد Heap و Stack یه توضیح میخوام آیا از هم جدا هستن یا نه اصلا چه فرقی باهم دارن ؟؟

2- کد زیر به زبان C هست میخوام بدونم محتویات Buffer چه طور در Stack دخیره میشه ؟؟ ( ترتیبشون )



int main (void)
{
int *buffer; // in C++‎ is : int *buffer;
buffer = malloc (20); // buffer = new int[20]
for (int i = 0 ; i < 20 ; i++)
{
buffer[i] = i;
}
return 0 ;
}یعنی بایت اول buffer در حافظه بالاتریه یا آخرین بایت؟
با تشکر

Woeful

tdkhakpur
یک شنبه 02 خرداد 1389, 22:38 عصر
- در مورد Heap و Stack یه توضیح میخوام آیا از هم جدا هستن یا نه اصلا چه فرقی باهم دارن ؟؟
در این مورد داخل تالار c توضیحاتی هست که عین مقاله میماند به نظرم توسط Nima_NF ارسال شده میتوانید همین کلمات را جستجو کنید.


یعنی بایت اول buffer در حافظه بالاتریه یا آخرین بایت؟

در تمام حالات بجز ارسال پارامتر به توابع در انواع کامپایلر ها - رزرو کردن بلوکهایی از حافظه به هر صورت از حافظه با اینکس پایین شروع میشود و اولین داده شماره ایندکس حافظه پایین را شامل میشود میتوانید برای اینکه مطمئن شود کد زیر را امتحان کنید.


int main(int argc, char* argv[])
{
int *buffer;
buffer = (int *)malloc (20);
printf("\nItem1 is in %ld address", (unsigned long)&buffer[0]);
printf("\nItem2 is in %ld address", (unsigned long)&buffer[1]);
getch();
return 0;
}