作者walm20 (New CygnusX)
看板C_and_CPP
標題Re: [問題] C語言的link list問題
時間Sun Dec 13 15:42:31 2009
※ 引述《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
→ jacky1989:不過我是印fr耶,nw是NULL也會影響嗎? 12/13 15:45
→ jacky1989:那我是該把4拿掉囉? 12/13 15:45
推 LPH66:就是在 i=3 時 //2 的地方 nw 是 NULL nw-> 才出事 12/13 15:45
→ LPH66:你應該要想想你的 nw 是要拿來幹麼的 12/13 15:46
→ jacky1989:咦?好像是耶,我似乎都沒仔細思考nw存在的意義 12/13 15:47
→ jacky1989:那while那邊怎麼會出問題?變成無窮迴圈耶 12/13 15:49