Chinaunix

标题: fedora 和windows的区别 [打印本页]

作者: 后街爱好者    时间: 2009-06-07 13:58
标题: fedora 和windows的区别
hi, all
今天装上了fedora9试着运行了下面的代码,感觉fedora上跑这段程序有问题啊
  1. #include <string.h>
  2. int main(char** argv){
  3.         char name[64];
  4.         char score[3];
  5.     memset(name, '\0',sizeof(name));
  6.     strcpy(name, "Tony");
  7.     printf("%s\n", name);
  8.         printf("%d\n", strlen(name));
  9.         memset(score, '\0', sizeof(score));
  10.         strcpy(score,"100");
  11.     printf("%s\n", name);
  12.         printf("%d\n", strlen(name));
  13.         printf("%d\n", strlen(score));
  14.         printf("%s\n", score);
  15.     system("PAUSE");
  16. }
复制代码
windows跑得结果如下
---------------------------------
Tony
4
Tony
4
3
100
请按任意键继续. . .
---------------------------------

fedora9的结果却是
---------------------------------
Tony
4

0
3
100
-----------------------------------

怎么感觉是个bug啊。
作者: daybreakcx    时间: 2009-06-07 14:38
score长度不够,最后还有一个'\0',其实不是操作系统问题,这是编译器怎么分配局部变量的问题,或者说这里两个结果不同是你开的字符串规模问题。
作者: 后街爱好者    时间: 2009-06-07 16:09
多谢楼上的,马虎了,将score数值长度变为4就没什么问题了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2