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

请大家看看这个函数有啥有关问题,多谢

2012-03-26 
请大家看看这个函数有啥问题,谢谢voidtest(){ charstring[10],str1[10] inti for(i0i 10i++) {  str

请大家看看这个函数有啥问题,谢谢
void   test()
{
 char   string[10],   str1[10];
 int   i;
 for(i=0;   i <10;   i++)
 {
  str1[i]   =   'a ';
 }
 strcpy(   string,   str1   );
}

[解决办法]
strcpy(char *a,char *b)
b必须是一个指向一个有NULL结尾标志的字符串指针。
而且a的空间必须足以容纳b。
你使用
for(i=0; i <10; i++)
 {
  str1[i] = 'a ';
 }
为str1赋值,则str[9] = 'a '。导致在str1定义的空间内没有了字符串结束标记,致使strcpy()不知何时为str1的结束,会操纵不属于str1的内存,引起越界。

热点排行