2014-11-15 156 views
-1

在下面的代碼中,我在編譯時在add_node函數中遇到問題。鏈接列表編譯時錯誤

我正在與下面的一行代碼中的錯誤:struct *node pNode = (struct node*)malloc(sizeof(struct node))

任何建議,將不勝感激。

struct list 
{ 
    struct node *head; 
    int count; 
}; 

struct node *add_node(struct list *pList, float coef, int expo) 
{ 
    if (pList == NULL) 
    { 
     return NULL; 
    } 

    struct *node pNode = (struct node*)malloc(sizeof(struct node)); 

    if (node == NULL) 
    { 
     return NULL; 
    } 

    pNode->coef = coef; 
    pNode->expo = expo; 
    pNode->link = pList->head; 

    pList->head = pNode; 
    pList->count++; 

    return pNode; 
} 
+0

從未投malloc的返回 –

+0

*始終*您得到什麼狀態錯誤。 「錯誤」也可能是「磁盤已滿 - 按任意鍵繼續」。 – usr2564301

回答

2

將此

struct *node pNode = (struct node*)malloc(sizeof(struct node)); 

struct node *pNode = (struct node*)malloc(sizeof(struct node)); 
+0

感謝這個工程,但另一個問題出現在下面一行中;如果(node == NULL),錯誤指出節點未聲明 – SlamDunkMonk

+0

@ user4225083您需要對'pNode'進行完整性檢查,而不是'node'。 –

0

你可能想改變線路結構節點* pNode =(結構節點*)malloc的(的sizeof(結構節點));

0

變化

if (node == NULL) 

if (pNode == NULL) 
+0

我做到了這一點,它的工作原理,但一個新的錯誤聲稱我有一個未定義的參考主; collect2:ld返回1退出狀態 – SlamDunkMonk

+0

@ user4225083:所以上面是你的*整個*程序? C需要一個'main'函數。猜是時候回到你的書本上了。 – usr2564301

+0

你忘了主要功能 – user2699113