Ora bem, eu tenho um clico que me está a ler linhas de um ficheiro, linha essas cujos campos estão a preencher uma estrutura apontada por um apontador para essa estrutura (CONTA*), apontador esse que depois está a ser adicionado a um array dinâmico de apontadores (CONTA**).
Isto está dentro dum ciclo while(!feof)
Pois bem, o meu problema é que tenho o seguinte: tendo três contas, aquele printf no ciclo dá-me o seguinte output (melhor formatado):
Quando faço o mesmo printf mas já depois do ciclo, ou seja, com o array já cheio, dá-me o seguinte output:
Precisava mesmo de ajuda, porque eu não percebo o que se passa...
Isto está dentro dum ciclo while(!feof)
Código:
CONTA** contas; // como variável global
CONTA* conta_ = (CONTA*)malloc(sizeof(CONTA));
printf("\n%p\n", conta_);
size_of_contas++;
contas = (CONTA**)realloc(contas,size_of_contas*sizeof(CONTA*));
tok = strtok(linha, " ");
(*conta_).nconta = atoi(tok);
tok = strtok(NULL, " ");
strcat(nome, tok);
strcat(nome, " ");
tok = strtok(NULL, " ");
strcat(nome, tok);
strcpy((*conta_).nome, nome);
tok = strtok(NULL," ");
strcpy((*conta_).pin, tok);
tok = strtok(NULL," ");
(*conta_).saldo = atof(tok);
contas[size_of_contas-1] = conta_;
printf("%p\t%07u\t%s\t%s\t%.2lf\n", (contas[size_of_contas-1]),(*contas[size_of_contas-1]).nconta, (*contas[size_of_contas-1]).nome, (*contas[size_of_contas-1]).pin, (*contas[size_of_contas-1]).saldo);
Pois bem, o meu problema é que tenho o seguinte: tendo três contas, aquele printf no ciclo dá-me o seguinte output (melhor formatado):
Código:
0x20f3160 0000001 Ana Santos 9876 10.00
0x20f3190 0000003 Pedro Pereira 0007 1234.53
0x20f31c0 0000004 Rui Sousa 1234 0.00
Quando faço o mesmo printf mas já depois do ciclo, ou seja, com o array já cheio, dá-me o seguinte output:
Código:
0x20f3160 0000004 Rui Sousa 1234 0.00
0x20f3190 0000004 Rui Sousa 1234 0.00
0x20f31c0 0000004 Rui Sousa 1234 0.00
Precisava mesmo de ajuda, porque eu não percebo o que se passa...