我发现一些 C++ 代码可以执行以下操作:
struct Test
{
int a[128];
char b[768];
};
int main()
{
Test test;
for( int i = 0; i < 200; ++i)
test.a[i] = 1;
return 0;
}
我意识到这是错误的。但是,我想知道效果如何?在 GCC 4.3.4 上,Test::b 数组保持不变。这有保证吗?这里发生了什么?
阅读效果一样吗?例如
int main()
{
Test test;
for( int i = 0; i < 200; ++i)
int z = test.a[i];
return 0;
}