ورود

View Full Version : این خط چیکار میکنه؟ int size = sizeof(a)/sizeof(int); n



hosseinam1370
سه شنبه 22 بهمن 1392, 09:17 صبح
دوستان میشه یزره در مورده این خط توضیح بدین،چیکار میکنه ؟
چیه؟
ممنون

iut.ali
سه شنبه 22 بهمن 1392, 10:38 صبح
سلام تابع sizeof طولی که یه متغیر در حافظه میگیره رو بر میگردونه خب حالا اگه مثلا متغیر a از نوع int باشه 4 رو بر میگردونه ,sizeofمخرج هم که معلومه چون int نوشته شده 4 رو برمیگردونه اندازه ها رو به هم تقسیم میکنه و میریزه توی size

sh4mid
سه شنبه 22 بهمن 1392, 12:21 عصر
سلام معمولا از این روش برای پیدا کردن اندازه آرایه استفاده میشه
sizeof(array)/sizeof(array[0])
البته همیشه هم درست کار نمی کنه مثلا اگه دینامیک ساخته شده باشه
int* array = (int*)malloc(sizeof(int)*n);
یا به صورت یه argument به تابعی فرستاده شده باشه
void f(int array[])

hosseinam1370
سه شنبه 22 بهمن 1392, 16:17 عصر
نمیتونم درک کنم که ما چیه نیازی داریم که اندازه یه متغییر رو بدست بیاریم/
اصلا چه نیازی داریم اندازه متغییر ها و کاراکتر ها رو پیدا کنیم؟
کجاها استفاده میشه؟
یخورده مفهومی توضیح بدین دوستان تا جا بیوفته.
ممنون دوستان.

sh4mid
سه شنبه 22 بهمن 1392, 17:50 عصر
اصلا چه نیازی داریم اندازه متغییر ها و کاراکتر ها رو پیدا کنیم
یه مثال ساده اش ایجاد آرایه dynamic با استفاده از malloc هست
int* array = (int*)malloc(sizeof(int)*n);
Need for sizeof (http://en.wikipedia.org/wiki/Sizeof)