Olá, eu preciso criar uma função que receba como parâmetro o nome do ficheiro binário e que leia ele e coloque o conteúdo dele em um vetor dinâmico de estruturas e devolve o mesmo.
Vou mandar o que eu já fiz, mas não esta funcionando (acho que ta bem errado).
#define MAX 100
typedef struct sala local, *plocal;
struct sala{
int id;
int capacidade;
int liga[3];
}
plocal le_dados(char *ficheiro)
{
plocal *aux;
plocal *p;
int *total;
FILE* f;
f = fopen(ficheiro, "rb");
if(f==NULL){
printf("\nErro na abertura do arquivo de espaco\n");
return;
}
while(fread(&p, sizeof(local),1,f)== 1){
fread(&total, sizeof(local), 1, f);
aux = realloc(p, sizeof(local)*(*total));
if(aux == NULL){
printf("Erro na alocacao");
return;
}
p[*total] = aux;
(*total)++;
}
printf("\nLeu o arquivo");
return p;
}
int main()
{
int *total;
plocal espaco= NULL;
char ficheiro[MAX] = "E2.bin";
espaco = le_dados(ficheiro);
return 0;
}