I have a problem accessing a struct of subscribers
typedef struct Inscrito {
char nome[50];
float cadastro;
float nota;
};
Inscrito *inscritos = NULL;
It is a global variable and every time I access it in some way (either to check for an error or to put the values inside it after it has been allocated the error)
(data is the variable of the .txt file I opened)
int Conta_MaioresNotas(FILE *Dados){
float NotaMin;
char info[20];
float numero;
int contador = 0, i = 0;
printf("Voce escolheu as maiores notas\n");
printf("Apartir de qual nota voce quer? ");
scanf("%f", &NotaMin);
while(!feof(Dados)){
fscanf(Dados,"%s", &info);
numero = atof(info);
if(numero && numero > NotaMin && numero < 1001){
contador++;
printf("%.2f\n", numero);
}
}
printf("%d\n", contador);
VoltaInicio(Dados);
inscritos = (Inscrito *) malloc(contador*sizeof(Inscrito));
if(inscritos == NULL) {printf("Deu erro meu amigo\n"); exit(-1);}
while(!feof(Dados)){
fscanf(Dados,"%s ", &info);
numero = atof(info);
if(!numero){
strcat(inscritos[i].nome, " ");
strcat(inscritos[i].nome, info);
}
else{
if(numero > 1000){
inscritos[i].cadastro = numero;
}
else{
if(numero > NotaMin){
inscritos[i].nota = numero;
i++;
}
else{
strcpy(inscritos[i].nome,"");
inscritos[i].cadastro = 0.0;
}
}
}
}
VoltaInicio(Dados);
This while giving the error, but I do not understand why, the program of the stick and closes "The program stopped working. A problem caused the program to stop working"
/*printf("Cadatrados filtrados:\n");
for(i = 0; i < contador; i++)
{
printf("Nome: %s\nCadastro: %f\nNota: %.2f\n\n", inscritos[i].nome, inscritos[i].cadastro, inscritos[i].nota);
}*/
return contador;
}
I'm not sure what to do,
(already tried to pass the subscribed pointer to the function and gave the same error)