当前位置: 代码迷 >> C语言 >> 一个strlen的小问题
  详细解决方案

一个strlen的小问题

热度:312   发布时间:2006-07-19 16:39:30.0
一个strlen的小问题

各位大侠,我有个小问题
char str[10]
strlen(str) 的结果为什么是17呢

搜索更多相关的解决方案: strlen  

----------------解决方案--------------------------------------------------------

唯一的可能就是您还没对字符串初始化,此时,str相当于一个wild point.
您可以这样,char str[10]="initial";
或者加个gets(str);便可。


----------------解决方案--------------------------------------------------------
又是与内存分配有关的问题,不要奇怪,strlen()是遇到'\0'结束的,'\0'的ASCII值是0,只有遇到0时strlen()才会停止计数。虽然char str[10],系统分配了十个字节给str数组,但是由于没有初始化,所以这是个字节以及这十个字节之后的内存中的数据就是未知的,至于到那个内存单元会遇到0,那要看上下文,平台等具体环境了
----------------解决方案--------------------------------------------------------
字符串没有初始化,长度是随机值.对吧,斑竹

----------------解决方案--------------------------------------------------------
     谢谢各位大侠给出的解答。
----------------解决方案--------------------------------------------------------
  相关解决方案