代码输出出现了两个姓名

问一下各位,为什么要我这个代码输出了两个姓名?以下是我的代码

img


这个是运行之后的输出

img


万分感谢!

结构体里面的number数组定义大一点,比如 char number[10];
原来只有6个字节长度,而你输入的也是6个字节长度的字符串,刚好放满了,字符串的结束符'\0'没地方放了,另外结构体里面的变量内存都是连续的,输出字符串是以'\0'结束,所以一直输出到name数组之后才找到'\0'

number数组太小了,如果学号有6个字符,那么你定义数组就至少需要7个,因为字符串还有个结束符需要占用一个,否则没有结束符的话,会在内存中向后找第一个字符串结束符,结果找到后面name数组的结束符,导致名称输出两遍