请问这样用是不是安全的?
int main()
{
char str1[] = " ";
char *str2 = "abc ";
strcat(str1, str2);
printf( "%s\n ",str1);
return 0;
}
原因何在?多谢指教!
[解决办法]
原因在于:str1的长度只有一个字节,而你后面的拷贝动作至少需要它有4个字节的长度。
[解决办法]
想得到什么效果呢?printf( "%s\n ",str1);遇空格就结束了,这样恐怕输出时啥都没有吧...
[解决办法]
字符数组str1不要缺省下标.赋值吧
另外strcat的时候最好做安全检查.
[解决办法]
想得到什么效果呢?printf( "%s\n ",str1);遇空格就结束了,这样恐怕输出时啥都没有吧...
-----------------------------------
不是啥都没有,是一运行就挂了...