关于strcpy和结构体运用的问题

在用file读入一个学生表的时候,我定义了一个结构体STU,然后在定义子类STU stu1的时候,里面有诸如学号姓名性别省份等等存储的字符数组,然后如果我比如定义姓名 char name[4],输出stu1.name的时候,会同时输出后面的性别省份,但是如果我定义为char name [40],就会输出理想情况,也就是单纯输出名字。为什么我的数组长度变长了之后才能输出正常呢?请问这个存储姓名的数组长度和strpcy函数截取的字符串内容有关联吗?

char name[4] 有效字符是3个,末尾得有字符串结束符'\0',而一个汉字占2个字符。
strcpy是根据字符串结束符遍历复制的。