【问题标题】:passing argument 1 of " " from incompatible pointer type从不兼容的指针类型传递“”的参数 1
【发布时间】:2013-12-25 11:51:15
【问题描述】:

我的程序出现三个警告。

第一:

passing argument 1 of " " from incompatible pointer type at line 18 and assigment makes integer from pointer without a cast at line 37

这是我的程序:

#include <stdio.h>


struct Equipo {
   char nombre [20];
   int goles[7];
};
struct Equipo resultados [6];

void LeerFich(struct Equipo *resultados);

void main()
{
    struct Equipo *equipos;
    LeerFich(&equipos);    //warning here
    Buscar(equipos);
    MarcaCero(equipos);
}

//Funciones

void LeerFich(struct Equipo *resultados)
{
    FILE *F;
    F= fopen("C:\\Users\\Paco\\Downloads\\datosLiga.txt", "r");
    fgets(resultados->nombre, 20, F);
    fscanf(F, "%d", &resultados->goles);
    fclose(F);
}
int Buscar(struct Equipo resultados[6], int v[6])
{
    int i, *maximo, sum, *equipo, t=6;
    for(i=0; i<6; i++){
        sum += resultados[i].goles;      //warning here
        if(resultados[i].goles>maximo)
            maximo=resultados[i].goles;
            *equipo=i;
    }
    while(i<t && v[i]!=*equipo)
        i++;
    if(i==t)
        printf("el equipo es: %s\n", resultados[*equipo].nombre);
        printf("ha marcado %d goles\n", *maximo);
}
int MarcaCero(struct Equipo resultados[6])
{
    int i, v[6];
    for(i=0; i<6; i++){
        if(resultados[i].goles[0]==0 && resultados[i].goles[7]==0)
            i=v[i];
    }
    for(i=0; i<6; i++)
        printf("\nel equipo %s no marco", resultados[v[i]].nombre);
}

【问题讨论】:

    标签: c pointers structure


    【解决方案1】:

    替换

    LeerFich(&equipos);    //warning here
    

    通过

    LeerFich(equipos);
    

    equipos 已经是struct Equipo * 类型,不需要取其地址。

    【讨论】:

    • 还要注意equiposLeerFich中使用(如resultados)没有被分配。
    • 谢谢,但我还有一个警告,你能解决另一个警告吗?谢谢,非常感谢:D
    • @ouah 为什么不将其视为错误而不是警告?
    • @Danijel 编译器选择是允许的。 C 需要诊断,它不需要停止翻译。
    【解决方案2】:
    LeerFich(&equipos); 
    

    这里发送的是声明无法接收的指针变量的地址

    使用:LeerFich(equipos);

    【讨论】:

      猜你喜欢
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 2017-12-11
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多