2015-10-12 63 views
0

基本上我試圖實現鏈接列表的數組,我有問題試圖刪除第一個節點,並將其替換爲下一個節點,因爲它是一個指針。試圖推崇指針回到結構

typedef struct BLOCKSTRUCT{ 
    int address;  //starting address 
    struct BLOCKSTRUCT* next; 
    int status; 
} block; 

int main(int argc, char** argv) 
{ 
    int tSize = 10; 
    block *arr = (block*)malloc(sizeof(block) * tSize); 
    // other code in between 

    if(arr[size].next != NULL) 
    { 
     arr[size] = &arr[size].next; // Having problems with this line 
    } 

} 

我曾嘗試以下:

  • ARR [尺寸] = & ARR [大小]的.next;

  • ARR [尺寸] =(塊)ARR [大小]的.next;

  • & ARR [尺寸] = ARR [大小]的.next;

,但我發現了以下錯誤我:

  • 無效初始化
  • 轉換到非標量型要求
  • 不兼容的類型分配

將不勝感激任何關於如何克服這個問題的想法。 謝謝!

+0

它不是很清楚你的鏈表是什麼樣子。你展示的只是10個結構的數組。您可能將這些用作池,但從鏈接列表中刪除內容不會將新數據分配給節點;它只意味着重新安排指針。 –

回答

1

您希望指針next指向的內容。

arr[size] = *arr[size].next; 
+0

謝謝你的工作! 這裏很新的C語法:) –