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...