Jump to content

dúvida sobre ponteiros


nelson nunes
 Share

Recommended Posts

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:

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
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
 Share

×
×
  • Create New...

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.