这个程序哪有问题???没有错误为什么执行不了??

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:46:33
# include <iostream.h>
# include <string.h>
void main ()
{
char s1[]="hello";
char s2[]={'h','e','l','l','o'};
strcat(s1,s2);
}

因为 s1只有5个字节的空间,你现在要把S2放是S1后面,当然就装不下了。

# include <iostream.h>
# include <string.h>
void main ()
{
char s1[32]={0};
strcpy(s1,"hello");
char s2[]={'h','e','l','l','o'};
strcat(s1,s2);
}

1.char s1[]="hello";
显式指定栈空间大小,要不然放不下的,
可以改成char s1[15] = "hello";
2.strcat操作遇'\0'才结束操作,
所以s2[] = {'h','e','l','l','o','\0'};

PS:楼上会造成内存越界,搞不好程序要崩溃,