Salve ragazzi,sto provando a realizzare un adt che crea una squadra di calcio.
Il mio progetto contiene (oltre al main) il file calciatore.c e il corrispondente header file calciatore.h
Ho definito una struttura che contiene i dati di un singolo calciatore.
Successivamente creo il tipo squadra,definito come un puntatore al tipo calciatore .
Inizialmente ho creato soltanto due operatori: crea_squadra che attraverso una malloc mi alloca lo
spazio per 25 giocatori,(una squadra intera) e inserisci_calciatori, che mi permette di inserire
i dati di ciascun giocatore.
Ora mi viene generato un errore quando richiamo la funzione inserisci nel main.
Quello che sbaglio quasi sicuramente è creare la squadra,cioè vorrei definire un
array di taglia 25 dove ciascuno degli i elementi sia un calciatore dove poter inserire
i campi nome,cognome,ruolo e così via.
Grazie in anticipo
p.s. Non so come allegare la cartella,ricopio il codice qui sotto
//CALCIATORE.H
typedef struct calciatore {
char nome[25];
char cognome[25];
char ruolo[25];
int anni;
float stipendio;
int svincolato;
}calciatore;
typedef calciatore *squadra;
squadra crea_squadra(); //ALLOCA LA MEMORIA PER UNA NUOVA SQUADRA MA NON LA INIZIALIZZA
squadra inserisci_calciatori(squadra s[]);
----------------------------------------------------------------------------------------------------------------------------------
//CALCIATORE.C
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "calciatore.h"
#define DIM_ROSA 25 //Impostare a 25
#define SIZE 25
squadra crea_squadra()
{
squadra s;
s = malloc(sizeof(squadra) * DIM_ROSA);
if(s == NULL)
{
printf("Errore:Impossibile creare nuova squadra\n");
return NULL;
}
return s;
}
squadra inserisci_calciatori(squadra s[])
{
char name[SIZE],surname[SIZE],role[SIZE];
int age,released;
float salary;
int i;
for(i=0; i< DIM_ROSA; i++) //INSERISCO I DATI DI CIASCUNO DEI 25 CALCIATORI
{
printf("\nInserisci il nome del calciatore numero %d: ",i+1);
scanf("%s",name);
strcpy( s[i]->nome,name);
printf("\nInserisci il cognome del calciatore numero %d: ",i+1);
scanf("%s",surname);
strcpy( s[i]->cognome,surname);
printf("\nInserisci il ruolo del calciatore numero %d: ",i+1);
scanf("%s",role);
strcpy( s[i]->ruolo,role);
printf("\nInserisci l'eta' del calciatore numero %d: ",i+1);
scanf("%d",&age);
s[i]->anni = age;
printf("\nIl calciatore e' svincolato? (1) per indicare si, (0) per indicare no: ");
scanf("%d",&released);
s[i]->svincolato = released;
printf("\nInserisci lo stipendio del calciatore numero %d: ",i+1);
scanf("%f",&salary);
s[i]->stipendio = salary;
}
return *s; //Ritorno la squadra con i dati inseriti
}
--------------------------------------------------------------------------------------------------------------------------------------------------------
//Main
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "calciatore.h"
int main(){
squadra Lione;
Lione = crea_squadra();
Lione = inserisci_calciatori(Lione[]); //QUI E' IL PROBLEMA
return 0;
}