Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

avner.max

Structs aninhadas.

Recommended Posts

Boa noite galera.
Tenho que entregar um trabalho da faculdade amanhã e preciso resolver isso o mais rápido possível.
Sou iniciante em C e estou com problema em acessar valores de uma struct aninhada.

Tenho um vetor de struct usuário e dentro dela tenho um vetor de struct músicas, so que não consigo acessar os valores do vetor de struct música.
Não sei se o código está errado, mas estava compilando. Até eu tentar acessar os valores do vetor de struct música.

O código:
struct tMusica{
int idMusica;
};
struct tUsuario{
int idUsuario, contMusica, contni, contnu;
struct tMusica musica;
};
struct tUsuario *usuario = (struct tUsuario*) malloc (sizeof(struct tUsuario));
struct tMusica *musica = (struct tMusica*) malloc (sizeof(struct tMusica));

 

Tentei acessar assim:

usuario[x].musica.idMusica;

*Estou usando FOR para passar os valores de x e i.

 

Quando tento compilar aparece esse erro:

error: subscripted value is neither array nor pointer nor vector usuario[x].musica.idMusica
Se alguém souber, da uma mão por favor!
Desde já agradeço.
Grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

usuário é um ponteiro simples p/ struct, e não um array de ponteiros. Você acessa com usuario-> ou (*usuario).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei * no usuario mas não funcionou, mas caiu a ficha assim que li sua resposta. Dentro da struct usuario, coloquei 'struct tMusica musica', sendo que devia passar musica com um ponteiro.

Coloquei 'struct tMusica *musica' e funcionou. haha...

 

Muito obrigado pela ajuda.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.