strcpy(course.Name,b)之前和之后的course.Code的内容分别是“ This”和“ Thisis”,这似乎strcpy()也将b的内容连接到course.Code
#{
答案 0 :(得分:3)
您需要五个字符来存储“ This”,而需要三个字符来存储“ is”,因为每个字符串都以零结尾。 (加分点:您需要八个存储“ This is”)
course
中的原始内存如下所示:
Code[0] 'T'
Code[1] 'h'
Code[2] 'i'
Code[3] 's'
Name[0] 'i'
Name[1] 's'
由于course.Code
上没有结尾零,因此printf
将继续打印。它无法知道您希望它在四个字符后停止。在“ Thisis”之后您不会得到无法理解的垃圾,这在很大程度上取决于运气和/或编译器设置。