GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Estudando Fila em C


#1

Olá. Tudo bem? Sou novo no forum então não sei se estou postando da forma correta nem no local adequado, mas valos la.
Estou estudando um código que meu professor passou sobre Filas Encadeadas em C. Para adicionar um elemento no inicio. O problema é que eu estou tentando rastrear os valores de dentro das variaveis e estou usando um printf para ver o conteúdo.

Quando adiciono ao código essa linha para verificar o que contem na variavel info e na variavel prox da auxiliar o meu programa da erro. Alguém saberia dizer o que estou fazendo de errado e como faço para exibir os valores da variavel?
// printf("\nValor do prox auxiliar: [%d][%x]", auxiliar -> info , auxiliar -> prox);

Para falar bem a verdade eu não estou entendendo NADA de lista e nem de PONTEIROS, então resolvi pegar o código do professor e tentar estuda-lo. Aceitaria de bom grado sugestões de aulas ou livros que tratassem sobre o assunto de uma forma bem leiga.

typedef struct Elementos {

int info;
struct Elementos *prox;

} no;

no *inicio;

void iniciarCabeca(){

inicio = NULL;
printf("\nEndereco do inicio: %x ", inicio);

}

int adicionarInicio(int dado){

no *novoNo, *auxiliar;

novoNo = (no *) malloc(sizeof(no));

if (novoNo == NULL){
	printf("Erro de alocacao!");
	return 0;
}

novoNo -> info = dado;
novoNo -> prox = NULL;
auxiliar = inicio;
printf("\nValor do prox novoNo: %x", novoNo -> prox);
printf("\nValor do prox auxiliar: [%d][%x]", auxiliar -> info , auxiliar -> prox);

if (inicio == NULL){
	inicio = novoNo;

}
else{
	
	novoNo -> prox = auxiliar;
	inicio = novoNo;
	printf("\nValor do novoNo prox: %x", novoNo -> prox);		
}


return 1;

}

int lerNumero(int dado){

printf("\nDigite um numero: ");
scanf("%d", &dado);
printf("\n\n");

return dado;

}

main (){

int numero = 0;
int n;
int op = 1;

iniciarCabeca();

while (op == 1){
	
n = lerNumero(numero);
adicionarInicio(n);
printf("\n\n Deseja continuar?\n 1 - Sim \n 0 - Nao \n Opcao:");
scanf("%d", &op);
}

}


#2

no caso tá dando erro pq vc tá pedindo p exibir um área inexistente do código
pra vc exibir o conteúdo do nó q vc tá querendo é: auxiliar->info e pra exibir o conteúdo do nó seguinte é:
auxiliar->prox->info


#3

Obrigado amigo!