65,187
社区成员




输出的字符串开头部分会有乱码,后面正常
int main()
{
const char *s1="abcd";
const char *s2="efgh";
char *cstr=new char[strlen(s1)+strlen(s2)+1];
//char cstr[strlen(s1)+strlen(s2)+1];
strncat(cstr,s1,strlen(s1));
strncat(cstr,s2,strlen(s2));
cout<<cstr<<endl;
delete [] cstr;
return 0;
}
用栈上的数组就正常
int main()
{
const char *s1="abcd";
const char *s2="efgh";
//char *cstr=new char[strlen(s1)+strlen(s2)+1];
char cstr[strlen(s1)+strlen(s2)+1];
strncat(cstr,s1,strlen(s1));
strncat(cstr,s2,strlen(s2));
cout<<cstr<<endl;
//delete [] cstr;
return 0;
}