Ir para conteúdo
Fórum Script Brasil
  • 0

Fila Circular Dinâmica - Mudar o Ponteiro da Lista


renan_j

Pergunta

Pessoal, 

 

estou implementando uma Lista Circular Dinâmica (com lista ligada). As minhas funções de inicializar a fila e enfileirar (enque) estão Ok. O problema é quando eu fiz uma função teste, que possui o objetivo de mudar o endereço da Lista.

 
Acontece que ele não muda. Alguém consegue me dizer o porque?
 
typedef struct reg{
	int content;
	struct reg *next;
}cell;



cell* init_queue(int y){
	
	cell* NEW;
	NEW = malloc(sizeof(cell));
	NEW->content = y;
	NEW->next = NEW;
	return NEW;
}



int empty_queue(cell* p){
	return(p == NULL);
}



int enque(cell* p, int y){
	cell* NEW = malloc(sizeof(cell));
	NEW -> content = y;
	
	if(p == NULL){
		p = NEW;
		NEW->next = NEW;
		return 1;
	}

	NEW->next = p;

	cell* ULT;
	ULT = p;
		
	while(ULT->next != p){
		ULT = ULT->next;
	}

	p = NEW;
	ULT->next = p;
	return 1;
}

void teste(cell* p){
	p = p->next;
	printf("P CONTENT = %d\n", p->content);
}


int main () {

	cell* lista;
	lista = init_queue(10); 

	enque(lista, 20);
	printf("1 = %d\n", lista->content);

	teste(lista);
	printf("1 = %d\n", lista->content);

}

 

 
As outputs do programa são:
1 = 10
P CONTENT = 20
1 = 10
 
No meu entendimento, o segundo printf deveria dar os 20!!
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...