具有数组的结构,内存是否连续?
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= 之间可能的填充,a
、b
和 c
(的元素)将是连续的],或 b
和 c
。当然 b
.
的元素之间没有填充
如果我有
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= 之间可能的填充,a
、b
和 c
(的元素)将是连续的],或 b
和 c
。当然 b
.