关于incompatible types when assigning to type "a"from type "b"的bug修复

博客详细介绍了如何解决编程中遇到的‘incompatible types’错误,指出该问题是由于类型'a'与'b'不匹配导致的。错误的根本原因是对指针理解不足。提供了头文件DLList.h的部分内容,并说明了正确引用函数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此error出现的原因是因为函数参数引用不正确,a 与b 两者类型不匹配。

关于此问题,根本原因是因为指针概念不清晰。

以下是头文件DLList.h节选:

typedef struct DLListNode {  
  
int value; // value of this list item (int)  
  
struct DLListNode *prev;  
  
// pointer previous node in list  
  
struct DLListNode *next;  
  
// pointer to next node in list  
  
} DLListNode;  
  
  
  
typedef struct DLListNode *DLListNodeP;  
  
  
  
typedef struct DLListRep {  
  
int nitems; // count of items in list  
  
DLListNode *first; // first node in list  
  
DLListNode *curr; // current node in list  
  
DLListNode *last; // last node in list  
  
} DLListRep;  
  
  
  
typedef struct DLListRep *DLList;  
  
  
  
  
  
/* creates a new DLListNode, with a given val*/  
  
DLListNode *newDLListNode(int val);  
  
  
  
// create a new empty DLList  
  
DLList newDLList();  

其中,


typedef struct DLListNode *DLListNodeP;  
*号跟在类型的后边表示声明或者定义的是指针,在变量前面是解引用符、 

此处表示有一个名叫DLListNodeP的指针,类型为DLListNode。


若要引用头文件中的函数,正确写法应为:

DLListNodeP m =newDLListNode(p->value);  
  
AddListNode_back(peaksL,m);  

void AddListNode_back(DLList pList, DLListNodeP pNode)  
通过DLListNodeP与DLList两个指针来操作。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值