Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

nelson nunes

dúvida sobre ponteiros

Mensagens Recomendadas

nelson nunes

Boas pessoa!

tenho teste amanha de IAED e não estou a perceber como isto funciona.

eles dão me isto:

typedef struct multilink{

        struct multilink *next[3];

        char * value;     

} Multilink;

char * nextValue(Multilink * v){

    return **** 

}

Qual a sequencia que devo colocar em ***** ?

a)  (*v[0].next)->value

:)  (*v).next->value

c)  v[0]->next[1]->value

eles dizem que a resposta certa é a a).. eu não percebo qual a diferença entre a a) e a :)..

(se nao fosse escola multipla eu metia v->next[0]->value;) 

sabem me explicar a diferença e pk k é a a)? :wallbash:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
TheDark

Ao fazeres *v[0].next estás a desreferenciar o campo next do 1º elemento do array apontado por v, obtendo um apontador para um objecto multilink, sobre o qual podes usar ->value.

Ao fazeres (*v).next estás a aceder ao campo next do elemento apontado por v, que é um array de apontadores, ficando com um apontador para apontador para multilink, sobre o qual não podes utilizar o ->value.

A tua resposta em caso de não múltipla também serviria para o efeito.


Desaparecido.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelson nunes

eu não sei o que significa desreferenciar ponteiros..

continuo sem perceber porque posso usar v[0] e usar next  sem indexar..

:thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
TheDark

Desreferenciar significa pegares num apontador e aplicares-lhe o operador desreferência ( * ), após o que ficas com o objecto em si. Por exemplo:

int i = 10;
int *pi = &i;

*pi = 20; //aqui, é desreferenciado o apontador pi e acedes deirectamente a i

Esta explicação ficou um pouco vaga, mas neste momento é o melhor que consigo... sorry.


Desaparecido.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.