這樣的連結串列讀入為什麼不行??

2025-01-26 02:15:17 字數 1476 閱讀 1413

1樓:超級賽亞小熊人

指標應用的不對。

p->next=p->next->next; 這個地方,應該改為p = p->next;

因為現在p->next->next指標為空,所以p->next也被賦空,所以第乙個迴圈結束時p->next為空。

#include ""

#include ""

struct link

int n;

link *next;

link *head,*p;

int i,num;

int main()

scanf("%d",&num);

p=head=(link *)malloc(sizeof(link));

for (i=1;i<=num;i++)

p->next=(link *)malloc(sizeof(link));

scanf("%d",&p->next->n);

p->next=p->next->next;

p=p->next;

p=head;

for (i=1;i<=num;i++)

printf("%d",p->next->n);

p->next=p->next->next;

p=p->next;

return 0;

2樓:網友

貌似->指向的應該是個指標吧?

結構體中int n;定義的是個變數不是指標。

試著把p->next->n改成(p->next).n看看。

我也不確定,現在手頭的電腦沒有編譯環境不能幫你驗證……

3樓:網友

#include ""

#include ""

struct link

int n;

link *next;

link *head,*p;

int i,num;

int main()

scanf("%d",&num);

p=head=(link *)malloc(sizeof(link));

for (i=1;i<=num;i++)

p->next=(link *)malloc(sizeof(link));

scanf("%d",&p->next->n);

p->next=p->next->next; /這句的問題,p->next->next都沒分配記憶體,怎麼能讓p->next指向它呢,前面的定義也有點問題。

p=head;

for (i=1;i<=num;i++)

printf("%d",p->next->n);

p->next=p->next->next;

return 0;

4樓:

在讀入結束後沒有p->next=null;

在顯示的時候也沒有判斷p->next是否為空,所以你的程式錯 了。

這樣的配置玩魔獸世界為什麼還不行

cpu 顯示卡差了些 想建議你換amd雙核cpu,但估計你主機板不支援雙核要麼你就狠點心,把主機板 cpu 顯示卡全換了。不行的話就換個amd單核3800 顯示卡換個 n系的 8600gt 256 512視訊記憶體就ok了。一共600來塊rmb可以搞定了。換個毛cpu 我的 amd2800 記憶體5...

剛剛帶上牙套,疼的我不行,為什麼會這樣

我摘牙套一年多了,你想用鐵絲強行改變你牙齒原來位置能不疼嗎?你得適應一二個月。這個過程可以歷練你 剛帶上牙套後,一咬牙就疼是什麼原因 你好,牙套加上材料粘結在牙面上,會感覺不適。但是這種感覺持續時間不會太長。如果產生疼痛是由於粘結材料在粘結凝固時使咬合關係改變,產生咬合高點,長期刺激會差生疼痛。長此...

C語言單向迴圈連結串列,輸出的最後元素為什麼是垃圾值,求大神幫我改動一下,真心感謝

void displist linklist l printf n 輸出乙個新dao 行符。求c語言大神解一下這道簡單的連結串列題 10 description 給定一串數字,用連結串列結構進行儲存。然後給定針對該連結串列的若干插入操作,要求將執行插入操作後的結果輸出。input 第一行 輸入乙個整...