改错,请说出错的原因,怎么改,谢谢1、Void test1(){ char string[10]; char* str1="0123456789"; strcpy(string, str1);}
----------------------------------2、Void test2(){ char string[10], str1[10]; for(I=0; I<10;I++) { str1[i] ='a'; } strcpy(string, str1);}
----------------------------------------------3、Void test3(char* str1){ char string[10]; if(strlen(str1)<=10) { strcpy(string, str1); }}
----------------------------------2、Void test2(){ char string[10], str1[10]; for(I=0; I<10;I++) { str1[i] ='a'; } strcpy(string, str1);}
----------------------------------------------3、Void test3(char* str1){ char string[10]; if(strlen(str1)<=10) { strcpy(string, str1); }}
第三个也是越界,注意:strlen是统计字符串的确实长度,不计最后一个\0,
所以应该是
void test3(char* str1){ char string[10]; if(strlen(str1)<=9)//这里! { strcpy(string, str1); }}
注意:strlen不是sizeof