如若在「合併鍊錶並去除重複元素」的執行語句:
while(p3->data==p1->data&&p1)p1=p1->next;
while(p3->data==p2->data&&p2)p2=p2->next;
用來跳過鍊錶l1/l2中與新建的鍊錶重複的元素,注意如果這麼寫的話可能會出現「段錯誤」:
當p1跳到null的時候進入下乙個迴圈,判斷括號裡的條件時時會先判斷&&前
此時null無data區域,因此會出現段錯誤
講他改正如下即可:
while(p1&&p3->data==p1->data)p1=p1->next;
while(p2&&p3->data==p2->data)p2=p2->next;
關於鍊錶中的段錯誤 7 1 單鏈表的建立及遍歷
當寫程式時,要求輸入n個數,如果未考慮n 0的情況,極有可能導致段錯誤,像如下例題 7 1 單鏈表的建立及遍歷 30分 讀入n值及n個整數,建立單鏈表並遍歷輸出。輸入格式 讀入n及n個整數。輸出格式 輸出n個整數,以空格分隔 最後乙個數的後面沒有空格 輸入樣例 在這裡給出一組輸入。例如 2 10 5...
在Linux C C 中捕獲段錯誤
在linux c c 中捕獲段錯誤 關於段錯誤 所謂的段錯誤就是指訪問的記憶體超出了系統所給這個程式的記憶體空間,在程式設計中幾類做法容易導致段錯誤,基本上是錯誤地使用指標引起的。1 訪問系統資料區,尤其是往系統保護的記憶體位址寫資料最常見就是給乙個指標以0位址。2 記憶體越界 陣列越界,變數型別不...
翻轉鍊錶中的一段
92 給你單鏈表的頭節點 head 和兩個整數 left 和 right 其中 left right 請你反轉從位置 left 到位置 right 的鍊錶節點,返回 反轉後的鍊錶 鍊錶 翻轉 從中間指定位置,之前做過類似的 迭代法 3步 1 儲存當前節點的後乙個節點,2 後項指前項 3 前進 左邊賦...