以下是引用wimphy在2006-6-15 16:14:44的发言:
斑竹大人
给个例子说明一下怎么能让#pragma pack(push,n)有用阿
#pragma pack对结构的字节对齐是有效的,如
class test
{
char c;
int x;
};
你试试用#pragma pack(push,n),将n改变为1和4的情况下sizeof(test)的大小是会变的
private,你说的
问题在这:
void test()
{ char string[10], str1[10]; //放十个char型的数组.
for(int i=0; i<10;i++) //10个地方都放满了
{
str1[i] ='a';
}
strcpy(string, str1);
cout<<string<<endl; //而这以一个字符串输出,没有\0,自动匹配或直到堆区结束。
问题wfpb在2楼就已经说出来了,而我们讨论的是字节对齐情况,而不是为什么内存错误
void test()
{ char string[10], str1[10]; //放十个char型的数组.
for(int i=0; i<10;i++) //10个地方都放满了
{
str1[i] ='a';
}
strcpy(string, str1);
cout<<string<<endl; //而这以一个字符串输出,没有\0,自动匹配或直到堆区结束。
世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。