Arrays de estruturas

jorijo

Power Member
boas!!

to a ter os seguintes erros quando tento carregar o conteudo dum ficheiro para um array de estruturas:

servidor.c:126: error: request for member ‘nome’ in something not a structure or union
servidor.c:129: error: request for member ‘util’ in something not a structure or union
servidor.c:132: error: request for member ‘pass’ in something not a structure or union
servidor.c:135: error: request for member ‘num_conta’ in something not a structure or union

Código:
struct dados_cliente //estrutura
{
    char nome[MAX_CHARS];
    char user[MAX_CHARS];
    char pass[MAX_CHARS];
    int num_conta;
    int movimentos[MAX_MOVIMENTOS];
    int n_movimentos;
    int saldo;
    pthread_mutex_t acesso_conta;  // mutex para bloquear o acesso à conta.
};

struct dados_cliente dados[MAX_CLIENTES]; //declaracao da variavel global

void carrega_dados_ficheiro(char* dados)  //funcao para carregar os dados do ficheiro
{
    FILE *fdados;
    char string_aux[MAX_CHARS];
    int i;
    
    fdados=fopen(dados, "r");
    if(fdados == NULL)
    {
        printf("Erro ao abrir o ficheiro!");
        exit(1);
    }
    else
    {
        for(i=0;i<MAX_CLIENTES;i++)
        {
            do
            {
                fscanf( fdados,"%s",&string_aux );
                string_aux[strlen( string_aux )]='\0';
                strcpy( dados[i].nome,string_aux );
                fscanf( fdados,"%s",&string_aux );
                string_aux[strlen( string_aux )]='\0';
                strcpy( dados[i].util,string_aux );
                fscanf( fdados,"%s",&string_aux );
                string_aux[strlen( string_aux )]='\0';
                strcpy( dados[i].pass,string_aux );
                fscanf( fdados,"%s",&string_aux );
                string_aux[strlen( string_aux )]='\0';
                dados[i].num_conta=atoi( string_aux );
            }while( fscanf( fdados,"%s",&string_aux )!=EOF );
        }
    }
}

se alguem poder ajudar agradeço
 
Última edição pelo moderador:
A estrutura chama-se dados e depois na função tens um character pointer chamado dados também, exprimenta mudar-lhe o nome.

struct dados_cliente dados[MAX_CLIENTES]; //declaracao da variavel global
void carrega_dados_ficheiro(char* dados) //funcao para carregar os dados do ficheiro
 
Back
Topo