C语言链表编程报错:assignment from incompatible pointer type问题咨询
解决指针类型不兼容的赋值错误
你的报错根源是指针类型不匹配:
struct etat结构体中的transi字段声明为struct etat *,即指向etat结构体的指针;- 而你要赋值的
t是struct transition *类型,指向的是另一种完全不同的结构体。
C语言不允许直接将不同结构体类型的指针互相赋值,因此触发了assignment from incompatible pointer type错误。
解决方法
修改struct etat的结构体声明,把transi字段的类型从struct etat *改为struct transition *,让它和目标指针类型匹配:
struct etat { char e; int termin; struct etat *etatsuiv; struct transition *transi; // 修改此处类型 };
修改后,p->transi = t即可正常赋值,因为两边都是struct transition *类型,类型完全兼容。
内容的提问来源于stack exchange,提问作者insaf
相关产品推荐
相关产品推荐

