首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-03-03 
几个题目!求答案1:#pragrpack(4)structA{charchintlen}unionB{shortxdoubley}structC{structAaunionB

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

热点排行