Qualcuno sa dirmi dov è l'errore in questo codice?
L' errore che il compilatore mi da è: [Error] ld returned 1 exit status
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char *codAtl;
int vTempo[2];
}t_atleta;
typedef struct{
char *nomeNaz;
t_atleta *vAtleti;
}t_nazione;
int main(int argc, char *argv[]) {
FILE *fp;
fp=fopen("team.txt","r");
if(fp==NULL)
printf("Errore di apertura");
else{
int c,M;
char *str;
int dim=0;
do
{
c=fgetc(fp);
if((c!=EOF && c!='\n')&&c!='*') dim++;
}while((c!=EOF && c!='\n')&&c!='*');
printf("\n %d",dim);
printf("\nPos nel file e': %d ",ftell(fp));
fseek(fp,0,SEEK_SET); //riposizioniamo l'indicatore di posizione all'inizio del file (posizione 0)
printf("\nPos nel file e': %d",ftell(fp)); //ftell ci ricava l'attuale posizione dell'indicatore di posizione
str=(char*) malloc (dim+1); //malloc ci crea spazio in memoria di dim+1 (quindi 4+1=5), prima covertiamo da void a char, ovvero facciamo in modo che malloc veda str come un insieme di char
printf("\nPos nel file e': %d",ftell(fp));
fgets(str,dim+1,fp); //otteniamo la stringa
printf("\nPos nel file e': %d\n",ftell(fp)); //posizione dell' indicatore
puts(str);
puts(strtok(str,"=")); //stampa stringa troncata
M=atoi (strtok (NULL, "=")); //converte stringa in un intero
printf("\n%d \n", M);
while(c!='\n' || c!=EOF){
c=fegtc(fp); //per andare alla seconda riga
}
do
{
c=fgetc(fp);
if((c!=EOF && c!='\n')&&c!='*') dim++;
}while((c!=EOF && c!='\n')&&c!='*');
printf("\nPos nel file e': %d ",ftell(fp));
c=fgetc(fp);
puts(str);
}
fclose(fp);
return 0;
}
Allegati: