下面是字符串复制的代码,str1[]如果限定大小为10,则会溢出,结果是s2正常,s1输出为 u?
请问为什么是这个结果呢?
#include
#include
int main()
{
char *s1;
char *s2;
char str[] = {"How are you?"};
char str1[10]={};
s1 = str;
s2 = str1;
while ((*s2 = *s1) != '\0'){
s2++;
s1++;
}
s1 = str;
s2 = str1;
printf("s1: %s\ns2: %s\n", s1, s2);
return 0;
}