Buongiorno,
sto utilizzando Dev-c++ e devo realizzare il seguente esercizio;
creare un programma che legga da file un elenco di dati e lo inserisca in una lista.
I vincoli sono:
1)-utilizzare un file di nome "variabili.h" nel quale dichiarare le variabili globali;
2)-utilizzare tanti file .c quante sono le funzioni
Il mio primo problema è che non capisco dove sto sbagliando ma non riesco a compilare con esito positivo la prima parte del progetto. Questo il codice del file "VARIABILI.H"
#include <stdio.h>
#include <stdlib.h>
FILE *SalvaDati;
FILE *LeggiDati;
typedef struct struNodo
{
int dato;
struct struNodo *prossimo;
}nodo;
nodo *nuovo_nodo(void)
{
return(nodo *)malloc(sizeof(nodo));
}
questo il main.c
int main(){
nodo *lista_persone;
printf("Caricamento dati da file alla lista ....\n\n");
lista_persone = leggiFile_popolaLista();
system("PAUSE");
return 0;
}
questo il file leggidati.c
#include "variabili.h"
nodo *leggiFile_popolaLista()
{
nodo *lst;
int primodato;
LeggiDati = fopen(FileArchivio, "r");
if (LeggiDati != NULL)
{
fscanf(LeggiDati, "%d", &primoDato);
if (primoDato == 0)
{
fclose(LeggiDati);
lst = NULL;
}
else
{
lst = nuovo_nodo();
[... qui gestisco la lista ...]
return lst;
}
}
else printf("File inesistente o errore nome file!\n");
return lst;
}
compilando mi restituisce due errori:
il primo nel main alla riga
lista_persone = leggiFile_popolaLista();
dove mi dice:
C:\.....\main.c [Warning] assignment makes pointer from integer without a cast
il secondo nel file variabili.h quando definisco nodo *nuovo_nodo(void) ecc..
C:\.....\variabili.h multiple definition of `nuovo_nodo'
Qualcuno per cortesia riesce a darmi qualche dritta su dove sto sbagliando il ragionamento??
Grazie mille, saluti.