2011-09-22 15 views
0

我需要在我的鏈表中添加一個變量。我有以下功能,但是我在提到的那一行出現錯誤。我也認爲我可能沒有正確完成if語句以將求和值返回給函數。總和鏈表

int print_nodeprice1 (node *headptr, int num) { 
int sum = 0; 
node *first; 
first = *headptr; // getting errors that I can't assign this 
while (first != NULL) { 
    first = first -> next_ptr; 
    if (num == first -> price1) 
     return sum; 
    else { 
     printf("\n"); 
    } 
    } 
} 
+1

heh。沒有人知道哪一個要高調。 – quasiverse

+0

道德輪轉彎...(Animaniacs參考。下車我的草坪) –

回答

0
first = *headptr; // getting errors that I can't assign this 

正確 - 你試圖賦值(解引用)的指針。

first = headptr; 

除此之外......目前還不清楚你的意思是「在我的鏈表中添加一個變量」。你的代碼返回0當它找到一個price1即等於num你通過。

0
int print_nodeprice1 (node *headptr, int num) { 
node *first; 
first = *headptr; // getting errors that I can't assign this 

first是一個指向nodeheadptr也是一個指針node。現在您嘗試分配first引用headptr的結果。

0

您不需要*。它應該只是:

first = headptr; 

firstheadptrnode*類型。 *運算符將它們解除引用,因此*headptr的類型爲node,而不是node*

1
first = headptr; 

這將work..since兩者都是類型的(節點*)

0

first是指向nodeheadptr是指向node*headptr是一個節點。您不能將node分配給指向node的指針。

1

你有幾個問題:

  1. 配第一= headptr,而不是* headptr
  2. 做你的NUM檢查在循環的頂部,首先設置= 一線>未來
  3. 你實際上並沒有總結任何東西。你是否想要增加你的 總和變量?