2017-09-13 25 views
-4

私は、ノードを宣言していますが、エラー:不明なタイプ名「ノード」

error: unknown type name 'node'

#include <stdio.h> 

typedef struct node 
{ 
    int info; 
    node *sig; //<-- error: unknown type name 'node' 
} nodeL; 

int main(void) { 
    nodeL n; 
    printf("%x\n", n.info); 

    return 0; 
} 

どのように私はそれを解決することができ、次のエラーがスローされますか?

+4

構造体名は 'nodo'で、' node'を宣言します。 –

+0

これは簡単な誤植であるため、閉じてください。 –

答えて

-1
typedef struct nodo 
{ 
    int info; 
    struct nodo *sig; // Rather than: node *sig; 
} nodeL; 

あなたの構造名nodeは、構造内で参照しているものです。 nodoではなくnodeです。

恐らく、nodo(またはnode)がCタイプであると誤解されています。タイプではありません。しかし、struct nodoは質問コードで定義されています。

+0

あなたの答えは、あなたが何を変えたのかについての説明なしの単なるコードです –

1

Cコンパイラは、ノード名またはノード名(おそらく構造体名に間違って入力したもの)が分からないことに注意する必要があります。これはCプライマリタイプではありません。この時点で、nodo構造体型であり、あなたがコンパイラにそれを「言う」しなければならない、などの時0​​:構造体の内側

typedef struct nodo 
{ 
    int info; 
    struct nodo *sig; 
} nodeL; 

atribute nodo *sig;は構造体型に定義されたポインタであるメンバーのSIGを宣言します。

関連する問題