从类型"delai_assemblage"的表达式初始化类型"delai_assemblage*&"的引用无效



大家好,我在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函数。

相关内容

  • 没有找到相关文章

最新更新