Então gente, eu sou novo no fórum, e também na programação.
Eu to tentando aprender a usar arquivos para salvar e receber dados então fiz esse programa:
#include <stdio.h>
#include <stdlib.h>
typedef struct{
char nome[80], sexo;
int idade, id;
}dados;
int main(){
FILE *arquivo;
arquivo = fopen ("arquivo.txt", "w+");
if (arquivo == NULL) {
printf ("Houve um erro ao abrir o arquivo.\n");
return 0;
}
// DEFINICAO DAS VARIAVEIS
int nalunos, nsalas, j, i;
dados aluno[nsalas][nalunos];
// INICIO DO PROGRAMA
printf("ENTRE COM O NUMERO DE SALAS: \n");
scanf("%d", &nsalas);
for(i=0; i<nsalas; i++) {
printf("\nENTRE COM O NUMERO DE ALUNOS NA SALA %d: ", i+1);
scanf("%d", &nalunos);
for(j=0; j<nalunos; j++){
printf("\nALUNO %d \n", j+1);
printf("Nome do aluno : ");
scanf(" %[^\n]s", &aluno[i][j].nome);
printf("Sexo (m ou f) : ");
scanf(" %c", &aluno[i][j].sexo);
printf("Idade do aluno em anos : ");
scanf("%d", &aluno[i][j].idade);
printf("Numero da ID do aluno : ");
scanf("%d", &aluno[i][j].id);
}
}
printf("\n\n\n");
No meio do programa aparece essa "falha de segmentação", e dependendo de onde eu coloco a variável FILE, ele aparece em local diferente. Como resolvo, e por que dá erro?