c++strcat问题

为什么显示不出来!!!
#include <iostream>
#include <string>
using namespace std;
int main()
{
char a[2],b[1]={'c'};
//string c="www";
cout<<strcat(b,a)<<endl;
return 0;
}

strcat是把两个参数当成字符串来处理的,至于两个参数是不是字符串、连接后会不会占用别的变量的存储空间,这些都要程序员自己来保证。
你这里b只声明了1个char的空间,'c'后面根本就没有字符串结束符,所以根本算不上字符串,执行strcat时会发生对未定义内存空间写数据的错误
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-07-06
strcat(b,a)是将a拼接在b的后面
而你b在声明的时候就指定了大小为1,而且你的a还没有定义,也就是为空
所以现在可以输出c
但是如果你给a赋值,那么就会溢出
依然只能得到c
第2个回答  2009-07-06
#include <iostream>
#include <string>
using namespace std;
int main()
{
char a[]={""},b[]={"c"};
strcat(b,a);
cout<<b<<endl;
return 0;
}

调试可行!
相似回答