2013-06-24 22 views
-7

該代碼給我編譯時出錯,我不知道爲什麼 問題是關於一個政策公司,但它沒有在這裏做什麼 只是爲了讓你明白什麼是試圖做錯誤編譯 - 在C鏈接列表中

我認爲錯誤是在該行 「(* H)= TEMP」

typedef struct 
{ 
    char cmp_name[20]; 
    int pol_code; 
    float pol_price; 
    int drivers; 
    float new_d; 
    float old_d; 
} POL; 

typedef struct node 
{ 
    POL   policy; 
    struct node *next; 
} NODE; 

    void ins(NODE **h,NODE *p) 
{ 
NODE *temp; 
temp=(NODE*)malloc(sizeof(NODE)); 

if(p==NULL) 
{ 
(*h)=temp; 
temp->next=NULL; 
} 
else 
{ 
p->next=temp; 
p=p->next; 
temp->next=NULL; 
} 

    printf("\nEnter Company Name: "); 
    scanf("%s",temp->policy.cmp_name); 
    printf("\nEnter Policy Code: "); 
    scanf("%d",temp->policy.pol_code); 
    printf("\nEnter Policy Price: "); 
    scanf("%f",temp->policy.pol_price); 
    printf("\nEnter Number of Drivers: "); 
    scanf("%d",temp->policy.drivers); 
    printf("\nAddon for a New Driver: "); 
    scanf("%f",temp->policy.new_d); 
    printf("\nAddon for a Old Driver: "); 
    scanf("%f",temp->policy.old_d); 

} 
+2

錯誤是什麼? – yaccz

+0

注意:我沒有粘貼整個代碼..它不完整,但是當涉及到「scanf」編譯器給我錯誤 –

+0

scanf需要一個指針 – yaccz

回答

7
NODE *temp; // This variable is uninitialized. It "points" to a region you haven't allocated. 

然後取消引用在這裏:

scanf("%s",temp->policy.cmp_name);