Fila dinâmica em C com indices

Bom pessoal, estou tentando criar uma programa em C de modo que o usuário digite um valor e crie uma fila do tamanho do valor digitado.Por exemplo se eu digitar 5 minha fila terá valores 0-1-2-3-4.Estou tentando usar um FOR para preencher a fila mas não estou conseguindo.Poderiam me ajudar?? Agradeço desde já!

#include <stdio.h>
#include <malloc.h>
typedef struct dados{
	int ind;
	struct dados *prox; //ponteiro q aponta p/ mesmo tipo de estrutura
}fila;
fila *novo,*inicio,*fim;

main(){
	inicio=fim=NULL; //apontam p/NULL pq a lista esta vazia 
	int i,n;
	printf("\nDigite quantos indices quer armazenar:");
	scanf("%d,&n");
        novo->prox=NULL;
	for(i=0;i<n;i++){
		novo=(fila*)malloc(sizeof(fila)); //alocação de memória
		novo->ind=i; //ind recebe o valor de i
		fim->prox=novo; //prox de fim aponta p/novo
		fim=novo; //fim aponta p/novo
	}

Olhei rapidamente e vi esse pequeno erro…

scanf("%d,&n");

Deveria ser…

scanf("%d",&n);

Outra observação, é boa prática sempre verificar se a estrutura foi devidamente alocada antes de definir valores…

if (novo == NULL) {
    printf("Não foi possível criar a lista!");
    exit(EXIT_FAILURE); //EXIT_FAILURE está em stdlib.h
}

Disse boas práticas, porque é bom sempre vc ter a idéia de que está programando para dispositivos com pouca memória, um if desses faz uma diferença grande…

1 curtida

Valeu cara o pequeno erro que você viu me ajudou aqui a corrigir