我正在尝试将节点插入到按升序排序的链表中的正确位置(按顺序)。我不断收到 GCC 错误“错误:取消引用指向不完整类型的指针”。我一直在处理这个 stackoverflow帖子中的代码。下面是我的代码:
typedef struct sNode {
int sid;
struct sNode *next;
}sNode;
sNode* addsNode (struct sNode *headPtr, int pSid)
{
struct sNode *ptr, *root = headPtr;
ptr = malloc (sizeof(struct sNode));
if(headPtr == NULL){ //In other code I've already check for a NULL list, pointer
ptr->sid = pSid;
}
else{
while(headPtr->next != NULL && headPtr->next->sid < pSid){
//while(headPtr->next != NULL){ --> Compiles when uncommented
headPtr = headPtr->next;
}//while
ptr->sid = pSid;
}//else
return root;
}//addsNode
我正在尝试返回一个指向列表前面的指针,以便在返回后可以进行其他链表操作。我一直在对 StackOverflow 进行一些研究,听起来它指的是导致问题的结构 sNode。我看过关于使用 typedef 声明结构的不同帖子。所以我已经尝试过使用和不使用 typedef 来声明它。我也看到过建议#include & 的帖子,但这也没有用。我正在使用 GCC 4.6.3 任何帮助表示感谢!