ねえ、私がこのようなことをしようとすると、私はそのエラーを受け取ります:
void swap(struct lnode* n1){
struct lnode*temp = n1->next;
}
一時ポインターがn1->nextを指すようにできると思いましたが、不完全な型エラーへの間接参照ポインターが表示されます。誰か助けてもらえますか?
ありがとう
ねえ、私がこのようなことをしようとすると、私はそのエラーを受け取ります:
void swap(struct lnode* n1){
struct lnode*temp = n1->next;
}
一時ポインターがn1->nextを指すようにできると思いましたが、不完全な型エラーへの間接参照ポインターが表示されます。誰か助けてもらえますか?
ありがとう
構造体のメンバーにアクセスするには、次のような宣言では不十分です。
struct lnode;
これにより、型が不完全になります。コンパイラは構造体の名前を認識しますが、構造体に含まれるフィールドを認識しません。不完全な型へのポインタを持つことはできますが、それらのメンバーにアクセスしたり、それらのサイズを計算したり、構造体メンバーの知識を必要とするその他のことを行うことはできません。
完全な定義が必要です。のように:
struct lnode
{
struct lnode *next;
/* other fields */
};
struct lnode
スコープ内の完全な宣言が必要です。それ以外の場合、コンパイラはメンバーの場所をどのように認識しますnext
か?
あなたの質問は、コンパイラがlnodeが何であるか、つまりstructlnodeの全体像を把握していないことを示唆しています。私たちが手伝ってくれるように、コードをもう少し投稿できるかもしれません。