红联Linux门户
Linux帮助

C 两个字符串连接出现的问题

发布时间:2012-05-21 22:07:06来源:红联作者:mr_tianwei
char b[]="I love ";
char c[]="you";
strcat(b,c);
printf("%s\n",b);
printf("%d\n",sizeof(b));


运行结果 输出的b 是对的 I love you 但是输出的b的空间大小为什么还是8 而不是加上c的4个字节
文章评论

共有 4 条评论

  1. 于 2012-05-28 18:05:43发表:

    如果你用strlen(b)查看的话应该是正确的长度,sizeof说的是b的数据类型所占用的空间,而b的数据类型是char【4】,你把它定义成数组了,这样的确会出现溢出

  2. kingmfly 于 2012-05-22 19:43:40发表:

    strlen(b)

  3. 于 2012-05-22 10:46:50发表:

    这个程序存在内存溢出,可能会发生运行时错误

  4. 于 2012-05-22 00:56:41发表:

    程序中的这个b,实际上是个指针。也就是个内存位置的首地址。
    so......