好日子大家,調用函數結構
我開始用C編程,也許我的問題可能看起來很可笑,但有會阻止方法與執行任何條件?
現在我正在編寫使用鏈表結構和每個東西編譯的程序,但在代碼程序中的一個明確的行之後不會調用方法。 這裏是我的代碼:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node
{
char* toFrom;
char* meanOfTr;
int hours;
int min;
double price;
char* note;
struct node *next;
}travel;
typedef struct list
{
travel * head;
}list_t;
void add(list_t *list,char toFrom1[], char meanOfTr1[], char note1[],int hours1,int min1,double price1);
void test();
int main(void) {
list_t *list;
test();
list->head=NULL;
test();
char* a="London";//then b,c,h,m,p variables declarations and initialization,which doesn't matter
add(list,a,b,c,h,m,p);
return 0;
}
void test()
{
printf("test\n");
}
void add(list_t *list,char *toFrom1, char* meanOfTr1, char* note1,int hours1,int min1,double price1)
{
// Some code here
}
我用它打印「測試」,以檢查是否程序讀取此方法測試方法。 但由於某些原因在行「list-> head = NULL;」之後 程序不打印任何東西=>不調用方法
如果有人能解釋我爲什麼會發生這種情況,我會非常感激。 Thanx提前
編輯:我其實解決的問題:問題是,指針didnt點實際的對象,所以 當我加入
list_t l;
list_t *list = &l;
它的工作,希望這將有助於有人用同樣的傻問題(: 感謝的意見,我會在心中的一切
關於你的編輯不這樣做。這也是未定義的行爲!一旦函數超出了內存不再可用的範圍,您必須通過Malloc將其放在堆上! –