私のプログラムには3つの警告があります。
最初:
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);
}
交換する
LeerFich(&equipos); //warning here
沿って
LeerFich(equipos);
equipos
はすでにタイプstruct Equipo *
であり、そのアドレスを取得する必要はありません。
_LeerFich(&equipos);
_
ここでは、宣言で受信できないポインタ変数のアドレスを送信しています
使用:LeerFich(equipos);