我的结构定义如下:
typedef struct ST {
int line, index, hp;
char name[4];
struct ST *next;
} ST;
现在,如果我按照特定顺序让成员,我的代码中出现了分段错误。但如果我这样做:
typedef struct ST {
int line, index;
char name[4];
int hp;
struct ST *next;
} ST;
我没有得到更多的分段错误,但它影响了一些结果(更具体地说,每个列表成员都有1" hp"比它应该的更少)。
我不知道为什么会这样,有人可以赐教吗?我花了超过5个小时试图修复段错误,为什么简单地交换两行来修复它?