我几乎尝试了所有方法,但我无法解决这个问题。我有一个结构:
typedef struct{
char firstname[15];
char lastname[20];
char status[1];
char dateOfBirth[10];
} Rec;
和一个主要的:
int main()
{
Rec rec;
strcpy(rec.status,"M");
strcpy(rec.dateOfBirth,"14-11-2000");
strcpy(rec.firstname,"Peter");
strcpy(rec.lastname,"Something");
printf("%s, %s, %s, %s\n", rec.status,rec.dateOfBirth,rec.firstname,rec.lastname);
return 0;
}
所以这个,应该打印 -> M, 14-11-2000, Peter, Something ..但它没有!它打印 -> M14-11-2000, 14-11-2000, Peter, Something。
换句话说,“状态”成员被“损坏”。我注意到,如果我更改结构数据的顺序,输出会更改,但总会有数据损坏。
我定义结构的方式有什么问题吗?谢谢!