我正在编写一个简单的函数,它在链表的开头创建一个新节点。当我尝试执行该文件时,我的 Windows 命令错误窗口出现“a.exe 已停止工作”。
对我来说一个谜是,当我printf
在 的正文中添加一个调用时insertNewNodeAtFront
,代码执行时没有上述错误框。想法?
这是源文件:
#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;
}