Re: [問題] C語言的link list問題

看板C_and_CPP作者 (New CygnusX)時間14年前 (2009/12/13 15:42), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串2/4 (看更多)
※ 引述《jacky1989 (幻想的夢境)》之銘言: : 我最近在寫link list : 不過遇到一點小問題 : #include<alloc.h> : struct list{ : float coef; : int exp; : struct list *nx; : }; : struct list *p1,*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)); : fr=p1; for(i=1;i<6;i+=2){ fr->exp=a[i]; //1. nw->nx=fr; //2. fr=nw; //3. nw=0; //4. } i=1 1. 略 2. 略 3. 略 4. nw=0 i=3 1. 略 2. nw是null : 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 : 這該怎麼解決阿?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.1.49

12/13 15:45, , 1F
不過我是印fr耶,nw是NULL也會影響嗎?
12/13 15:45, 1F

12/13 15:45, , 2F
那我是該把4拿掉囉?
12/13 15:45, 2F

12/13 15:45, , 3F
就是在 i=3 時 //2 的地方 nw 是 NULL nw-> 才出事
12/13 15:45, 3F

12/13 15:46, , 4F
你應該要想想你的 nw 是要拿來幹麼的
12/13 15:46, 4F

12/13 15:47, , 5F
咦?好像是耶,我似乎都沒仔細思考nw存在的意義
12/13 15:47, 5F

12/13 15:49, , 6F
那while那邊怎麼會出問題?變成無窮迴圈耶
12/13 15:49, 6F
文章代碼(AID): #1B99ho4W (C_and_CPP)
文章代碼(AID): #1B99ho4W (C_and_CPP)