读书人

几个题目!求答案,该如何解决

发布时间: 2012-03-03 15:33:03 作者: rapoo

几个题目!求答案
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+未定义数据

读书人网 >C语言

热点推荐