大家好,我在C语言有一个问题,我不能修复它这是我的代码:
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);
}
}
和dsamai_ass是一个链表
下面是错误
430 G:test1.cpp invalid initialization of reference of type 'delai_assemblage*&' from expression of type 'delai_assemblage'
如果这真的是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)
{
...
}
看起来您正在传递一个类型为delai_assemblage
的变量,其中指向delai_assemblage
的指针是预期的。我猜你正在传递这样的变量,如d_ass
参数,你正在调用你的demande_usine_stockage
函数。