0
I’m having a problem accessing a subscriber struct
typedef struct Inscrito {
char nome[50];
float cadastro;
float nota;
};
Inscrito *inscritos = NULL;
it is as a global variable and every time I access it somehow (either to check an error or to put the values inside it after the error has been allocated)
(data is the file variable . txt 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);
The while that gives the error, but I don’t understand why, the program sticks 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 commented this one to show that it is not him who is giving error, only to be able to show the code until the end
(I tried to pass the pointer entered to the function and gave the same error)