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

x3minater

Estruturas e "->"

5 mensagens neste tópico

Boas, tenho aqui uma duvida...

Se tivermos uma estrutura dentro de outra estrutura, por exemplo:

struct blabla
{
int n;
int i;
struct blabla_in
{
  char dig[5+1];
  int quant;
}
struct blabla *prox;
}

Se nos refericemos ao n ou ao i num printf("...%d...", ...) seria: walker->i ou walker->n, certo? (Sendo walker uma variavel do tipo: struct blabla)

Mas como é que nos referimos ao dig[5+1] e ao quant num printf??? Da mesma maneira?

EDIT: E será que tenho de por: "struct blabla_in *prox" para os elementos estarem ligados em forma de lista???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Será walker->i se walker for do tipo struct blabla *.

Penso que essa declaração está errada, devia ser qualquer coisa como:

struct blabla
{
  int n;
  int i;
  struct blabla_in
  {
    char dig[5+1];
    int quant;
  } in;
  struct blabla *prox;
};

Assim, poderias aceder ao quant fazendo walker->in.quant.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Será walker->i se walker for do tipo struct blabla *.

sim, tinha me eskecido de dizer...

Assim, poderias aceder ao quant fazendo walker->in.quant.

Não teria que fazer:

typedef struct blabla_in  {    
char dig[5+1];    
int quant;  
} in;

??

E se quisesse aceder a dig[5+1]??

Seria:

walker->in.dig

ou

walker->in.dig[5+1].

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
dig[5+1] não existe. Apenas existe dig[0], dig[1], ..., dig[5].
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja agr...em vez de estar a abrir outro topico...

Podemos passar uma string, de uma estrutura, para um vector de strings?

EX:

struct bla
{
char descr [70+1];	
struct produtos *prox;
}
typedef struct bla BLA;

BLA *walker;
int v[10];
int i;

for(i=0; i<10; i++){
n=0;
walker2->descr = v[n++];
}

Pode-se fazer isso?

0

Partilhar esta mensagem


Link 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