Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
O código abaixo está compilando no gcc, mas na execução está dando falha de segmentação após efetuar a primeira entrada.
Gostaria por favor que alguém identificasse qual o erro no meu código.
#include<stdio.h>
#include<stdlib.h>
typedef struct{
char codigo[21];
char descricao[101];
double preco;
}prod;
void armazena(FILE *arq, prod **produtos, int n){
int i;
for(i=0; i<n; i++)
fprintf(arq, "%s\n%s\n%.2f\n", produtos[i]->codigo, produtos[i]->descricao, produtos[i]->preco);
}
int main(){
int i, n;
FILE *arq= fopen("PRODUTOS.txt", "w+");
prod **produtos;
printf("Informe o numero de produtos a serem cadastrados: ");
scanf("%d", &n);
produtos=(prod**)malloc(n*sizeof(prod*));
for(i=0; i<n; i++){
printf("\nInforme o codigo, a descricao e o preco do produto %d \n", i+1);
scanf("%s%101[^\n]%lf", produtos[i]->codigo, produtos[i]->descricao, &produtos[i]->preco);
}
armazena(arq, produtos, n);
free(produtos);
fclose(arq);
return 0;
}Carregando comentários...