首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教这样用是不是安全的

2012-02-13 
请问这样用是不是安全的?intmain(){charstr1[] char*str2abc strcat(str1,str2)printf( %s\n ,

请问这样用是不是安全的?
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);遇空格就结束了,这样恐怕输出时啥都没有吧...

-----------------------------------

不是啥都没有,是一运行就挂了...

热点排行