读书人

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

发布时间: 2012-03-26 15:46:56 作者: rapoo

请大家看看这个函数有啥问题,谢谢
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的内存,引起越界。

读书人网 >C++

热点推荐