C/C++ struct 结构体的内存分配问题

2014-11-24 03:30:33 · 作者: · 浏览: 0
这几天在写struct结构体的时候,发现了一个有趣的现象,就是结构体的分配问题。

代码如下:


#include 
  
   

using namespace std;

int main()
{
    struct S1
    {
        int i,j;
        double k;
    };

    struct S2
    {
        int i;
        double j;
        int k;
    };

    struct S3
    {
        double i;
        char j;
        char k;
        int q;
    };

    S1 s1;
    S2 s2;
    S3 s3;

    cout<<"sizeof(s1):"<
   
    
运行结果为:

\



到了网上一查,说了什么乱七八糟的什么内存对齐问题,我估计那些作者也不知道是从哪里抄袭过来的。

其实这问题,测试了几次,就知道个大概了。知道以后怎么用就行了,具体的不是我这种渣渣能够理解的。

简单地说,以后定义结构体的时候,尽量将同一类型的变量声明在一起,这样能够有效节省内存。