建立連結串列並輸出,編譯沒錯誤,但是執行到一半就不行了

2021-09-05 11:55:55 字數 814 閱讀 5862

1樓:小樓微醉

第一處錯誤:建立連結串列時你給函式傳遞一個引數 &l 但是連結串列生成後卻又用一個返回值將連結串列頭結點地址傳回,但卻沒有給l1賦值,所以這時候相當於l1還是空的。但是接下來卻又在 print_l(l1);函式中使用了l1 所以系統會在這裡出錯了 lnode *p=l->next; ……因為l是無效的…………

第二處錯誤 :程式使用 malloc在堆上分配了記憶體,程式結束卻沒有釋放…………

改正:#define true1

#define flase 0

#define ok 1

#define error 0

#define infeasible -1#define overflow -2typedef int status;

typedef int elemtype;

#include

#include

typedef struct lnodelnode,*linklist;

void creat_l(linklist &l)q->next = null;

}//輸出順序表中的元素

void print_l(linklist l)else return;

while(p)

printf("\n\n");

free(l);

}void main()

2樓:匿名使用者

l1=creat_l(l1); //少了接收首地址吧

C語言輸出問題,C語言 建立連結串列與輸出連結串列的問題

我在你 的基礎上,稍微改了點,你看下,是否就是輸出你想要的 include main 程式中少了幾個變數的宣告。輸出的不是從0到1000,這是因為你把step的值定為了50的緣故啊。下面是把step改為了10的執行結果 include main 標準c語言庫函式fprintf printf格式字串的...

C 單連結串列輸出程式訪問衝突求指正

1全部問題很簡單 initlist linklist l 這個函式中,for迴圈建立節點時 linklist s linklist malloc sizeof linklist s data i 6 r next s 少了把s next null 這行 因為s是一個新的節點,下個節點忘了置為null...

用c語言尾插法建立帶頭結點的單連結串列

eof scanf d x 是什麼意思bai?把scanf d x 寫在while語句的du上面為什zhi麼不行?這裡是指 dao輸入成功的話,執版行下權面的大括號裡面語句。pre next是指當前結點的前一個結點,這裡用於交換位置的。你可以畫個圖來檢視他們之間的聯絡,就會很清楚了 用c語言實現 1...