昇順で並べ替えられたリンクリストの適切な場所に(順番に)ノードを挿入しようとしています。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について調査を行っていますが、問題の原因となっているstructsNodeを参照しているようです。typedefを使用して構造体を宣言することに関するさまざまな投稿を見てきました。だから私はそれを宣言するためにtypedefを使用して、または使用せずにそれを試しました。#include&を提案する投稿も見ましたが、それもうまくいきませんでした。私はGCC4.6.3を使用しています。助けていただければ幸いです。