数组越界的问题(在vc6下编译没有错误)
#include <stdio.h>
#include<string.h>
#include<iostream.h>
#pragma pack(push,1)
void test()
{ char string[10], str1[10];
for(int i=0; i<10;i++)
{
str1[i] ='a';
}
strcpy(string, str1);
cout<<string<<endl;
cout<<str1<<endl;
}
void main( void )
{
test();
}
#pragma pack(pop)
输出结果:
aaaaaaaaaa@
aaaaaaaaaa@
为何?
设置了按照1字节对齐,为什么结果还是12个字节呢?
编译器设置为4字节