vc调试过程中变量值突然改变

为什么调试过程中k的值突然改变图片

图太小,看不是很清楚。字符串的长度必须比你实际的字符长度还要+1,存放\0结束。否则出现下标越界,如果有别的变量,可能会冲掉或者修改它们。

这是源代码
#include
#include
#define N 3

void String_Sort(char s[][N]) {
int i,j, k;
char temp[N];
for (i = 0; i < 3; i++) {
k = i;
for (j = i + 1; j < 3; j++)
if (strcmp(s[j], s[k]) < 0)
k = j;
if (k != i) {
strcpy(temp, s[i]);
strcpy(s[i], s[k]);
strcpy(s[k], temp);
}
}
}
int main() {
char s[10][N];
int i;
printf("请输入3个等长的字符串:\n");
for (i = 0; i < 3; i++)
scanf("%s", s[i]);
String_Sort(s);
for (i = 0; i < 3; i++)
printf("%s\n", s[i]);
return 0;
}