首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言鏈表創建常見錯誤:重複調用與頭節點處理

     編輯:程式設計綜合問答

問題代碼分析

原代碼在 main 中連續調用兩次 creat():

creat();          // 第一次調用,返回值被丟棄
head = creat();   // 第二次調用,實際使用的鏈表

這導致第一次創建的鏈表內存洩漏,且輸入數據被消耗兩次,致使第二次創建時無有效輸入,打印函數無內容輸出。

修正要點

  1. 移除多餘的 creat() 調用,僅保留 head = creat();。
  2. 補全標準庫頭文件:#include <stdio.h>、#include <stdlib.h>。
  3. 打印函數應從頭節點的 next 開始遍歷,避免打印頭節點的無效數據。

修正後的關鍵代碼

int main() {
    student *head = creat(); // 單次調用
    print(head);
    return 0;
}

void print(student *head) {
    student *p = head->next; // 跳過頭節點
    while (p != NULL) {
        printf("%d %f\n", p->num, p->score);
        p = p->next;
    }
}

調試建議

使用調試器單步執行,觀察鏈表節點創建與鏈接過程;輸入數據時注意結束標記(如 0)的處理邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved