2017-03-12 29 views
0

Cでリンクリストを実装しようとしていますが、 とコンパイル時に次のエラーが出るのを苦労しています:構造体へのポインタ

entryList.c:7:11: error: 'tmp' undeclared (first use in this function) 
    entry * tmp = NULL; 
entryList.c:7:11: note: each undeclared identifier is reported only once for 
    each function it appears in 
    ^

私はすでにこのプログラムのリンクリストをいくつか書いていますが、それらはすべて同様の構文を使用しますが、コンパイラはこれについてのみ不平を言います。

私はこのheader.hの私の構造体の定義があります。

/*definition of entry type*/ 
typedef struct entry 
{ 
    char * label; 
    short int address; 
    struct entry * next; 
} entry; 

とentryList.cで、私はリンクリストにノードを追加する関数を書いています。

#include "header.h" 

static entry * head = NULL; 

void addEntry(char * entry, int line) 
{ 
    entry * tmp = NULL; 
    char * label = NULL; 
    tmp = malloc(sizeof(entry)); 
    label = malloc(sizeof(char)*MAX_LINE); 
    strcpy(tmp->label, entry); 
    tmp->address = 0; 
    tmp->next = NULL; 

    if (!head) 
    { 
    head = tmp; 
    } 
    else 
    { 
    entry * p = head; 
    while (p->next) 
     p = p->next; 
    p->next = tmp; 
    } 
} 

答えて

6
void addEntry(char * entry, int line) 
{ 
    entry * tmp = NULL; 

あなたは、パラメータとentry名前付きの型の両方を持っています。それらのうちの1つを別のものに変更します。

関連する問題