Prezados, Tenho que ler um arquivo de ponto, txt, com o seguinte layout: nome;dia;turno1;turno2 turno1 e turno2 é um int, sendo que 1 trabalhou e 0 esteve ausente. ex.: João Paulo;1;1;1 Paulo;1;1;1 enfim, um txt que armazena dados neste formato. O programa que tenho que concluir tem as seguintes structs: //Estrutura utilizada para armazenar o ponto de um dia (turnos da manhã e noite)
typedef struct sPontoDia
{
int iManha;
int iTarde;
}
stPontoDia;
//Estrutura utilizada para armazenar os dados de um funcionário (nome e informações sobre os pontos)
typedef struct sDadosPonto
{
char sNome[50];
stPontoDia* vPontoDia;
}
stDadosPonto;
O problema todo é qeu tenho que fazer alocação de memória, de maneira que deverá rodar neste função:
void inicializa(void)
{
//Variáveis locais
int iFuncionario=0, iDia=0;
for (iFuncionario=0; iFuncionario < iQtdFuncionarios; iFuncionario++)
{
strcpy(prDadosPonto[iFuncionario].sNome,"");
for (iDia = 0; iDia < iTotalDiasTrabalhados; iDia++)
{
prDadosPonto[iFuncionario].vPontoDia[iDia].iManha = 0;
prDadosPonto[iFuncionario].vPontoDia[iDia].iTarde = 0;
}
}
}
Atualmente estou detido porque naõ consigo sair da função que se encontra assim:
void alocaMemoria(void)
{
// IMPLEMENTE AQUI
int iFuncionario=0, iDia=0;
for (iFuncionario=0; iFuncionario < ( iQtdFuncionarios * iTotalDiasTrabalhados ); iFuncionario++)
{
prDadosPonto = (stDadosPonto*)malloc(sizeof(stDadosPonto) );
for (iDia = 0; iDia < iTotalDiasTrabalhados; iDia++)
{
prDadosPonto[iFuncionario].vPontoDia = ( stPontoDia*)malloc(sizeof(stPontoDia) );
}
}
} eu não estou entendendo direito, já que inicialmente a função "inicializa" está fazendo referencia a vPontoDia informando o dia, sendo que a struct contem somente os campos iManha e iTarde. Não entendo como pode fazer referência a prDadosPonto[iFuncionario].vPontoDia[ ISTO_AQUI ] !!!! Por favor, me ajudem a inicializar esta lista! Obrigado.