2013-06-18 78 views
0

喜逢身體我有C語言問題,我不能在這裏解決它是我的代碼:的類型從類型「delai_assemblage」表達「delai_assemblage *」的參考無效初始化

void demande_usine_stockage(entrepot *u_s,fournisseur f[],int *demande,delai_appro &d_a,delai_ass &d_ass,usine_ass *u_a,int *attente_stockage,int *attente_assemblage,int *debut_stockage,int *fin_stockage,int *debut_assemblage,int *fin_assemblage,int periode) 
{ 
u_a->commande_en_souffrance += *demande; 
u_a->niveau_stock=u_a->stock_physique - u_a->commande_en_souffrance; 
if (u_a->niveau_stock >= *demande) 
{ 
     *debut_stockage=periode; 
     *fin_stockage=periode+u_a->L_assemblage; 
     stockage(u_s,demande,d_a,u_a,debut_stockage,fin_stockage,attente_stockage,periode); 
} 
else 
{ 
    *debut_stockage=periode+f[1].L; 
    *fin_stockage=(periode+u_a->L_assemblage+f[1].L); 
    stockage(u_s,demande,d_a,u_a,debut_stockage,fin_stockage,attente_stockage,periode); 
    demande_usine_assemblage(f,u_a,d_ass,demande,attente_assemblage,debut_assemblage,fin_assemblage,periode); 
} 
} 

和délai_ass是一個鏈表
這裏是錯誤

430 G:\test1.cpp invalid initialization of reference of type 'delai_assemblage*&' from expression of type 'delai_assemblage'

+0

謝謝你:) – user2498186

+0

你有**閱讀**錯誤信息嗎? – 2013-06-18 17:49:37

+0

看起來像C++。請重新登錄。 – alk

回答

1

如果這真的是C,不是C++,然後重命名你的文件有一個.c擴展,不.cpp。 C和C++是兩種不同的語言,您不應該將.cpp文件編譯爲C代碼。

由於C沒有引用,因此您還需要刪除所有引用類型(類型的&,在標識符之前)。例如:

void demande_usine_stockage(
    entrepot *u_s, 
    fournisseur f[], 
    int *demande, 
    delai_appro *d_a, // Reference (&) changed to pointer (*) 
    delai_ass *d_ass, // Reference (&) changed to pointer (*) 
    usine_ass *u_a, 
    int *attente_stockage, 
    int *attente_assemblage, 
    int *debut_stockage, 
    int *fin_stockage, 
    int *debut_assemblage, 
    int *fin_assemblage, 
    int periode) 
{ 
    ... 
} 
+0

我忘了告訴你,我用這個 'typedef struct delai_livraison * delai_livr; typedef struct delai_assemblage * delai_ass;' – user2498186

0

它看起來像你逝去的delai_assemblage類型,其中一個指向delai_assemblage預期的變量。我猜想你正在傳遞這樣的變量,如d_ass參數,你要調用你的demande_usine_stockage函數。

相關問題