假如给你下面的结构体,让你计算该结构体的大小是多少,你会得出怎么样的答案:
#include<iostream>
using namespace std;
struct node1{
int a;
char b;
short c;
};
struct node2{
char b;
int a;
short c;
};
int main(){
cout<<sizeof(node1)<<" "<<sizeof(node2);
return 0;
}

本文探讨了C++结构体中内存对齐的概念及其重要性。通过实例分析了内存对齐的规则:起始位置为成员数据类型所占内存的整数倍,结构体大小为其成员中最大数据类型的整数倍。以此为基础,解释了为何特定结构体的大小会有所不同,如node1为8字节,node2为12字节。

1万+

被折叠的 条评论
为什么被折叠?



