SAlve ragazzi,
mi servirebbe una mano con il passaggio di un vettore per indirizzo ad una funzione che deve modificare il vettore stesso con un'altra funzione.
Mi compila ma con avvertimento (code blocks):
passing argument from incompatible pointer type
e quando faccio girare il programma si blocca nell'inserire il primo parametro come se non sapesse dove inserirlo...
#include <stdio.h>
#include <stdlib.h>
#define NSQUADRE 2
struct giocatore {
char cognome[30];
int goals;
};
struct squadra {
char nome[30];
int numgiocatori;
struct giocatore rosa[40];
};
void insquadra (struct squadra *a);
void incampionato (struct squadra *a[],int n);
void mediagol (struct squadra *a);
int main()
{
struct squadra campionato[NSQUADRE];
incampionato(campionato,NSQUADRE);
return 0;
}
void insquadra(struct squadra *a) {
printf("Inserire nome\n");
scanf ("%s",(*a).nome);
printf("Inserire numero giocatori\n");
scanf("%d",&(*a).numgiocatori);
int i;
for (i=0;i<(*a).numgiocatori;i++) {
printf("Inserire %d giocatore\n",i);
printf("Inserire nome\n");
scanf("%s",(*a).rosa.cognome);
printf("Inserire gol giocatore\n");
scanf("%d",&(*a).rosa.goals);
}
}
void incampionato(struct squadra *a[],int n) {
int i;
for (i=0;i<n;i++) {
insquadra(&(*a));
}
}
void mediagol(struct squadra *a) {
int c=0;
int i;
printf("%d\n",(*a).numgiocatori);
for (i=0;i<(*a).numgiocatori;i++) {
c=c+(*a).rosa.goals;
}
c=c/(*a).numgiocatori;
printf("Media gol squadra=%d\n",c);
}
grazie