具有数组的结构,内存是否连续?

Structure with an array, is memory contiguous?

如果我有

struct S {
    int a;
    float* b;
    int c;
};

除了任何填充。 a、b(保存指针的变量)和 c 将是连续的。 b 指向的元素可能在内存中的其他地方

如果我有

struct S {
    int a;
    float b[10];
    int c;
};

a、b、c的每个元素在内存中都是连续的。正确的? 我写了一个测试程序并查看了地址以确认,但我不确定那是编译器有用还是有保证。

是的,如果我们忽略 a 和 [=11= 之间可能的填充,abc(的元素)将是连续的],或 bc。当然 b.

的元素之间没有填充