看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《jacky1989 (幻想的夢境)》之銘言: : 我最近在寫link list 所以你想寫一個這樣的東西吧?? □→□→□→□→□→□→□→NULL 如果是的話 來看你的程式 : 不過遇到一點小問題 : #include<alloc.h> : struct list{ : float coef; : int exp; : struct list *nx; : }; : struct list *p1,*fr,*nw,*dl; 在此建了四個point pl→??? fr→??? nw→??? dl→??? : void main() : { : int x,a[]={5,0,4,1,3,2},b[]={6,0,9,2},i; : float y; : p1=(struct list *)malloc(sizeof(struct list)); : nw=(struct list *)malloc(sizeof(struct list)); 跟記憶體要了兩個struct的空間 pl nw ↓ ↓ □→??? □→??? : fr=p1; pl nw ↓ ↓ □→??? □→??? ↑ fr : for(i=1;i<6;i+=2){ : fr->exp=a[i]; : nw->nx=fr; : fr=nw; : nw=0; : } when i = 1; pl ↓ □→ a[1] →??? nw→NULL ↑ fr 上面是經過for迴圈內第一次的執行(when i = 1)後 整體變成這樣 再來看 when i = 3; fr->exp=a[i]; pl ↓ a[3] → a[1] →??? nw→NULL ↑ fr nw->nx=fr; 現在nw已經指向NULL nw→NULL 他哪裡來呢nx 呢?? 為什麼你的程式還可以印=.= : while(fr!=NULL){ : printf("p1x=%d\n",fr->exp); : dl=fr; : fr=fr->nx; : free(dl); : } : } : 我run的時候 : 都會顯示 : Null pointer assignment : 如果不用while寫 : 是可以勉強run的出來 : 不過不管怎麼弄都會有 : Null pointer assignment : 這該怎麼解決阿?? -- 聖露西亞捐款10萬美金 該國人口數僅17萬 silverache:換算過來 平均每個國民捐給我們20幾萬台幣~~啾感心LIONDODO:哇,一個人捐20幾萬… m7cord:好感動,一個人二十萬耶。Q_Q -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.232.58.39
netsphere:圖形debugger 先進! 12/13 15:53
jacky1989:nw的問題解決了,不過現在又有問題就是,要如何印出list 12/13 15:54
jacky1989:我用while印,不過每次出來都是2,還是無窮迴圈耶 12/13 16:52
joefaq:你有指向下一個節點嗎? 12/13 17:02
jacky1989:有阿,不就是fr=fr->nx? 12/13 17:28
jacky1989:真的沒有人有辦法解決我的問題嗎? 12/13 18:11
taiwan2000:不好意思 nw=0之後就等於沒new 還能用nw->nx嗎? 12/13 18:24
taiwan2000:抱歉 沒看到已經解決了XD 12/13 18:25
taiwan2000:另外 不是沒辦法解決你的問題 你把程式改成怎樣誰知道 12/13 18:25
jacky1989:ㄜ...我是說...while那部分喔 12/13 18:31
taiwan2000:我猜你只把nw=0拿掉 還有free(dl)拿掉 12/13 18:32
taiwan2000:如果我猜對的話 你有沒有發現fr始終指向自己 12/13 18:32
taiwan2000:fr==fr fr->nx==fr 12/13 18:33
jacky1989:不過印出來依然是無窮迴圈耶 12/13 18:36
taiwan2000:當然是無窮迴圈阿... 12/13 18:37
jacky1989:我是說我有修改過了...難道是while的條件不正確嗎? 12/13 18:38
taiwan2000:那你修改成什麼樣子 12/13 18:38
jacky1989:不就是把nw=0 free(dl)拿掉? 12/13 18:39
jacky1989:不過我真的不知道fr=fr是在指哪裡 12/13 18:40
taiwan2000:可能我笨吧....我都不知道你想講什麼 12/13 18:50
jacky1989:不好意思是我的表達不清,還是感謝所有回答的人,辛苦了 12/13 18:51
VictorTom:l大太有心了, 給您個推:) 12/13 22:06
Gway:強者 解惑加圖解 我是元PO的話會很感動 XD 12/14 07:59