看板 C_and_CPP 關於我們 聯絡資訊
目前對C語言串列還不是很熟悉 想請教一下大神有關串列的問題 假設我有n個裝置 都發資料(資料皆不相同)給中心裝置 我想把中心收到的資料建立成串列 之後能複製資料出來使用 n可能10個也可能20個 就一個未知的數量 該如何建立一個串列是擁有n個節點的呢 以下是我錯誤的程式碼主要部分 int i=0; struct node{ //建立節點結構 int data; struct node* next; }Node; Node* head=(struct node*)malloc(sizeof(struct node)); //頭指標 head->next=NULL; while(中心裝置buffer沒資料為止) //跑n次 { Node (*x)[i]=(struct node*)malloc(sizeof(struct node)); /我想這句是整個觀念錯誤 if(i==0) { x[i]->next=NULL; head->next=x[i]; x[i]->data=Buffer當時資料; } else { x[i]->next=NULL; x[i-1]->next=x[i]; x[i]->data=Buffer當時資料; } i++ } 我想程式的邏輯我應該錯的很離譜 但我用人的邏輯只能想到這樣表達了 網路資料大部分都是在一個串列新增一節點 或是建立以知數量節點的串列 請求大神們解惑了 該如何才能建立未知數量節點的串列 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.153.24 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1449749346.A.FC0.html
stupid0319: 一節一節貼上去啊 12/10 20:12
tonygoog: 我也是想一節一節加上去 但不知道正確的做法 12/10 20:16
Caesar08: 那句改成Node *x=...,[i]是給array用,你的Node不適用 12/10 20:24
Caesar08: 我建議先一個一個加上去,不要一次就想搞定全部 12/10 20:25
Caesar08: 這樣講你可能還是不懂,創建一個Node head與node2 12/10 20:30
Caesar08: 讓head->next=node2,node2->next=NULL,一個一個加上去 12/10 20:31
Caesar08: 你就知道while要怎麼寫了 12/10 20:31
tonygoog: 感謝你說的那一行我知道意思 但要搭配while我還不太懂 12/10 20:51
leftless: buffer那邊就可以開始串了吧 12/11 09:56
leftless: 就是不知道i有多少才用link的不是嗎 12/11 09:59
leftless: 阿看懂了 手機排板好詭異 12/11 10:01