paradigma de ponteiros

paradigma de ponteiros

por Rafael Moraes -
Número de respostas: 2
Se a função Conj_Cria retorna um ponteiro para o tipo CONJUNTO:

CONJUNTO* Conj_Cria();

Então quando a utilizamos, de forma simples seria:

CONJUNTO* c = Conj_Cria();

Como minha lista possui cabeça, a função Conj_Insere precisa alterar o valor do ponteiro c. Logo eu teria que passar o ponteiro por referência, o que pediria a definição:

int Conj_Insere (CONJUNTO **set, Elem v);

e não da forma como está enunciado:

int Conj_Insere (CONJUNTO *set, Elem v);

Se eu fizer a referência de ponteiro estará errado? Pois é assim que entendo e funciona bem!
Em resposta à Rafael Moraes

Re: paradigma de ponteiros

por José Augusto Soares -
 >  Como minha lista possui cabeça

O valor de c é o endereço da cabeça da lista. Esse valor não deve ser alterado.

O que a função Conj_Insere precisa e pode fazer é alterar o valor de c->prox, mas não o valor de c.

Zé Augusto
Em resposta à Rafael Moraes

Re: paradigma de ponteiros

por Pedro Musa -
Como o psor falou só adicionando um pouco se vc altera o c vc está usando lista sem cabeça, ai sim vc precisa alterar a função para ** mas se vc usa cabeça vc altera somente a cabeça c->prox.