C語言連結串列問題,c語言連結串列問題

時間 2022-06-24 11:10:06

1樓:匿名使用者

我不知道你用什麼編譯器,不同的編譯器可能結果不一樣。

會提示段錯誤的可能是vc編譯器,建議你除錯下:

while(p1 && p1->num!=0)

2樓:可口可越

struct student *next;這個分號你寫錯了,所以會造成字元錯誤,然後定義連結串列的儲存結構是要用typedef struct student的。在主函式中需要返回值,所以將主函式改為int main,加上return 0;然後我除錯了一下,沒發現問題。

3樓:不知怎麼辦才好

p2->next=null; 出問題了。 應該寫 p1->next=null; 因為 你在建立時 輸入三行資料 會建立 3個 struct student * 表空間。 但是 你把最後一個沒有釋放 這樣 沒執行一次 就出現一個 多餘的 連結串列欄位空間。

所以會錯誤。

改成我這個樣子 雖然你有 3個連結串列 欄位 但是 你只顯示前兩個。

4樓:xz巨集定義

while(p1->num!=0) 空指標的時候num為隨機數、

5樓:蝶彩楓林

你去相關論壇裡問問去

c語言連結串列問題

6樓:匿名使用者

1全部**沒貼完整,delet()函式中,形參p未做null判斷直接賦值給now1,scanf()輸入姓名後,while()迴圈條件更是直接訪問了其成員變數next,如果呼叫delet()時,傳入的是一個null指標,會出現空指標訪問。

由於**不全,根據提供的部分,只發現這種可能性,建議排查一下delet()函式呼叫處,是否傳入了空指標。

另外提醒一下,從**流程上看,p節點自身似乎不會參與查詢,開始遍歷的第一個節點是p->next。

7樓:靠譜兒媽媽

訪問空地址了,你用除錯工具除錯一下就能看出來了。

c語言連結串列問題

8樓:卯瀚玥

#include

#include

struct lian

;void creat(struct lian *s,int t)}void look(struct lian *s)}void addcreat(struct lian *s)while(num<=0);

for(;anext=null; // 頭結點沒有資料,後面處理要跳過它

do}while(num!=4);}

c語言連結串列問題

9樓:gta小雞

p=(struct node*)malloc(sizeof(struct node))

c語言連結串列問題

10樓:匿名使用者

連結串列必須知道頭指標在哪第一個紅圈是初始化指標 因為你剛開始定義連結串列指標的時候指標指向的是隨機的 所以只能初始化

第二個紅圈是第一次給連結串列分配空間 如果頭指標為空就把連結串列指標給頭指標 這倆個語句確實只執行一次 但我沒理解你話的意思

11樓:

你的理解當然不對了。前一個頭(head)、尾(tail)指標初始化語句:head = tail = null ; 是進行指標變數初始化;而後面的語句:

head = tail = p ; 指的是當成功給指標變數 p 分配空間之後,head 和 tail 變數指向 p 節點的首地址。

而且了,你的程式還有一個非常重要的地方有不足就是:沒有對指標變數 p 是否成功分配到記憶體進行判斷。即:

p = (struct chain *)malloc(sizeof(struct chain) ) ;

if( p == null )

p->next = null ;

p->value = x ;

......

12樓:

你這個是使用尾插法建立連結串列,兩個紅圈的**都是有必要的,第二個紅圈的執行條件是if(head == null)成立時,才會執行,也就是建立第一個節點的時候會執行該條語句,從建立第二個節點開始就執行esle分支的語句了呀。這樣,head始終指向連結串列的頭結點,而tail始終指向當前連結串列的尾節點了。

c語言連結串列問題

13樓:夫順

malloc申請的記憶體是void*型的, 前面的括號是把申請的記憶體強轉成所需要的型別, 如果不加的話,有的編譯器會隱式轉換(這樣的是不會有問題的), pend->pnext = pnew; 是讓尾節點指向新節點, 此時, 尾節點應該是pnew了, 此時的尾節點應該變成現在的新...

c語言連結串列寫約瑟夫環問題,c語言連結串列寫約瑟夫環問題

include include typedef struct node 節點存放一個資料和指向下一個節點的指標 node node link create int n 建立n個節點的迴圈連結串列 p pnext head 最後一個節點指向頭部,形成迴圈連結串列 return head void li...

c語言 單向連結串列如何排序,C語言 單向連結串列如何排序?

問明 void link order stu p head stu pb,pf,temp pf p head if p head null 連結串列為空printf needn t order.n return if p head next null 連結串列有1個節點 printf only on...

C語言連結串列與結構體,c語言結構體與連結串列

北風微風 include include define null 0 define len sizeof struct student struct student int n struct student creat void if n 0 head null p2 next null free ...