我正在寫一個簡單的函數,它在鏈表的開始處創建一個新節點。當我嘗試執行文件時,我的Windows命令錯誤窗口出現,說「a.exe已停止工作。」如何切換函數內的printf調用,以確定我的代碼是否不會崩潰?
對我而言,神祕之處在於,當我在insertNewNodeAtFront
正文中添加printf
調用時,代碼將在沒有上述錯誤框的情況下執行。想法?
這裏是源文件:
#include <stdio.h>
typedef struct NodeTag{
const char* Airport;
struct NodeTag * Link;
} NodeType;
void insertNewNodeAtFront(NodeType *, const char*);
void insertNewNodeAtFront(NodeType * L, const char* str){
NodeType * N;
N = L;
NodeType * NewFirst;
NewFirst->Airport = str;
NewFirst->Link = N;
L = NewFirst;
//printf("L->Airport: %s\n",L->Airport); <---This is the line that magically makes it work.
}
int main(){
NodeType * myitinerary;
insertNewNodeAtFront(myitinerary,"ONT");
return 0;
}
你的調試器說什麼? – 2013-04-18 07:41:33
你怎麼知道「* a.exe已停止工作。*」是一個錯誤? – Maroun 2013-04-18 07:42:22
我沒有真正運行過這個調試器。你對C基於Windows的系統建議哪個? – Thalatta 2013-04-18 07:43:07