اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

اشتباه در خروجی عملگر sizeof برای ساختار

0 امتیاز
59 نمایش

من ساختار زیر و تعریف کردم و خروجی که گرفتم ۸ چاپ شد در صورتی که باید ۵ چاپ بشه. چرا؟

#include <iostream>
using namespace std;
struct X
{
  char x;
  int i;
};

int main()
{
  cout<<sizeof(X);
  return 0;
}
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده یکشنبه ۲۰ مرداد ۱۳۹۲ در C++ توسط prodo  

1 پاسخ

0 امتیاز

برای افزایش سرعت اجرا کامپایلر متغیرهای ساختار رو در آدرس‌های با ضریب ۴ بایتی قرار می‌ده. مثلاً اگه ۱ بایت لازم باشه براش ۴ بایت در نظر می‌گیره.

struct X
{
  char x; // a byte
          // padding 3 byte
  int i;  // 4 byte
};
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده یکشنبه ۲۰ مرداد ۱۳۹۲ توسط prodo