几个题目!求答案
1:
#pragr pack(4)
struct A
{
char ch;
int len;
}
union B
{
short x;
double y;
}
struct C
{
struct A a;
union B b;
char cc;
}
求sizeof(C);
2: geterror(char s[129])
{
strncpy(s, "hell,world ",sizeof(s));
}
main()
{
char ss[129];
geterror(ss);
}
ss是什么结果?
}
[解决办法]
第一题是24
第二题ss里就是 "hell,world "啊
不知道对不对。。。
[解决办法]
1. sizeof(C) = 24
2. 根本就没看见输出函数的。而且程序也有问题。。
[解决办法]
1.14
2.因为sizeof(s)=4; 所以复制4个字符,但是没有结束符,所以后面的为乱码
[解决办法]
geterror(char s[129])
{
strncpy(s, "hell,world ",sizeof(s));
printf( "%s\n ", s);
}
就算你是这样输出好了,那也不对的。
sizeof(s) = 4,也就是打印前4个字符,由于sizeof(s) < strlen( "hello,world ").最后那个字符串结束符 '\0 'copy不过去,打印会出现乱码的。。。
[解决办法]
1 20
[解决办法]
第一題應該是20
不知道你們24是怎么來的。。。。
[解决办法]
第二題
sizeof(s)中的s為指針,只是4個字節
所以s應該是hell+亂碼
[解决办法]
恩,第二题是hell+未定义数据