[問題] 鍊結串列在記憶體配置時,如何分散配置?
我想將鍊結串列在一開始配置進記憶體時,不是佔用連續空間,
而是分散開的(沒有實際目的,純粹想實驗看看),
所以我先寫了下面這些程式碼:
struct linked
{
int value;
linked* next;
};
.
.
.
.
int main(){
int size;
cout<<"Linked List的欄位數:";
cin>>size;
linked* pl=new linked;
for(int i=0; i<size; i++){
linked* ptmp=pl;
ptmp->value=2*i;
if(i==size-1) ptmp->next=NULL;
else {ptmp->next=new linked; ptmp=ptmp->next;}
}
.
.
.
}
但是執行後會發生錯誤,我猜原因是因為寫在迴圈內的
linked* ptmp=pl; 及 ptmp->next=new linked;
只會執行一次,所以不會一直重複配置。
想請問:程式碼要怎麼寫才能達到我的目的?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.90.145
→
08/04 16:45, , 1F
08/04 16:45, 1F
※ 編輯: frankhsu421 來自: 218.173.90.145 (08/04 16:52)
→
08/04 16:57, , 2F
08/04 16:57, 2F
→
08/04 16:57, , 3F
08/04 16:57, 3F
→
08/04 16:57, , 4F
08/04 16:57, 4F
→
08/04 17:00, , 5F
08/04 17:00, 5F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):