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