C程序找错误: void test1() { char string[10]; char* str1="0123456789"; strcpy(string,str1); }

2024-11-27 14:54:08
推荐回答(2个)
回答1:

char* str1="0123456789"; // str1指向的字符串中有0-9共10个字符,加上用来标记字符串结束的在'9'之后的末尾的0字节,共计要占用11个字节
而char string[10];只有10个char即10个字节的空间
所以strcpy会造成string数组溢出

回答2:

0123456789是 string[0] str1指针指向STRING[0]