Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
nelson nunes

dúvida sobre ponteiros

Recommended Posts

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:

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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:

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.