看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): #include <cstdlib> #include <iostream> using namespace std; struct node{ int data; struct node *next; }; struct node *head; struct node *tail; ==>先以全域變數宣告結構體指標 head和tail void insert(struct node *x,struct node *head,struct node *tail){ int num; cout<<"輸入的數字為?"<<endl; cin>>num; if(head==NULL){ x->data=num; x->next=NULL; head=x; tail=x; cout<<head->data<<endl; } ===>insert函式用來新增第一個node,並把head和 tail設定指向那個新增的點 } int main(int argc, char *argv[]) { struct node *x; head=NULL; tail=NULL; x=(struct node *)malloc(sizeof(struct node)); insert( x, head,tail); ===>使用傳址呼叫的方式,把新new出來的x節點跟head,tail 一併傳過去 cout<<head->data<<endl;===>問題來了,在insert函式裡頭的cout<<head->data可以 產生我希望的結果,但執行完函式回到mail裡頭執行 cout<<head->data時,跑出"發生未處理的win32例外狀況" 請問為什麼會這樣?? system("PAUSE"); return EXIT_SUCCESS; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.123.102
james732:程式碼用置底文連結貼,並且排整齊 05/12 11:59
dpqb10:http://codepad.org/DBKLD0oj 05/12 12:11
loveme00835:因為你修改的 head、tail是參數, 不是全域變數 05/12 12:21
loveme00835:好沒誠意的程式碼... 05/12 12:21
TsinTa:與置底的13誡之13類似... 05/12 13:08
james732:http://pastie.org/1891828 這樣就可以了 05/12 13:26
ctjh:http://codepad.org/ljhBXPwe 這樣也可以 05/12 16:08