结构体指针使用时的小陷阱
最近,使用结构体指针时,偶遇bug,后弄清楚了原因,在此记录一下,防止以后重蹈覆辙,也提醒一下可能和我遇到一样问题的伙伴们…
为了防止错误的样例先入为主,在这里,先列出正确的打开方式:
typedef struct TNode
{
string data;
string weight;
struct TNode *firstchild,*nextsibling;
}*tree;
错误的栗子
typedef struct TNode
{
string data;
string weight;
tree firstchild,nextsibling;
}*tree;
Why?
因为在自定义的结构体中预先使用起好的别名(在这里指tree)是不被认可的,咱得先把别名起号让人家知道不是,不然别人怎么知道可以用这个别名来称呼你呢?