Como acessar uma struct dentro da outra [RESOLVIDO]

1. Como acessar uma struct dentro da outra [RESOLVIDO]

Rafael Alves Lagisck
lagisck

(usa Debian)

Enviado em 25/03/2013 - 20:16h

Galera queria saber como eu faço para acessar uma struct dentro da outra

#include <stdio.h>
#define MAX 10

struct Tpchave{
int prioridade;
char elem;
};

struct Tpfila{
int fim;
Tpchave fila[MAX];
};

quando existe uma struct em C apenas coloca o nome dela e uma variavel tp assim:
struct Tpfila r;
para acessar a variavel da struct seria assim:
r.fim;

Mas como eu faço para acessar uma struct dentro da outra?
e como faço para acessar a variavel fila

obrigado


  


2. Re: Como acessar uma struct dentro da outra [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/03/2013 - 21:13h

lagisck escreveu:

Galera queria saber como eu faço para acessar uma struct dentro da outra

#include <stdio.h>
#define MAX 10

struct Tpchave{
int prioridade;
char elem;
};

struct Tpfila{
int fim;
Tpchave fila[MAX];
};

quando existe uma struct em C apenas coloca o nome dela e uma variavel tp assim:
struct Tpfila r;
para acessar a variavel da struct seria assim:
r.fim;

Mas como eu faço para acessar uma struct dentro da outra?
e como faço para acessar a variavel fila

obrigado


Fiz umas alterações e coloquei exemplos:

#include <stdio.h>

#define MAX 10

struct Tpchave {
int prioridade;
char elem;
};

struct Tpfila {
int fim;
struct Tpchave fila[MAX];
};

main () {

struct Tpfila B;

B.fim = 0;

B.fila[2].prioridade = 4;
B.fila[2].elem = 7;

printf ("B.fila[2].prioridade = %d\n", B.fila[2].prioridade);
printf ("B.fila[2].elem = %d\n", B.fila[2].elem);

return;

}




3. Re: Como acessar uma struct dentro da outra [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 25/03/2013 - 21:19h

#define MAX 10

struct Tpchave{
int prioridade;
char elem;
};

struct Tpfila{
int fim;
Tpchave fila[MAX];
};

quando existe uma struct em C apenas coloca o nome dela e uma variavel tp assim:
struct Tpfila r;
para acessar a variavel da struct seria assim:
r.fim;

Mas como eu faço para acessar uma struct dentro da outra?
e como faço para acessar a variavel fila

obrigado


Como, no seu exemplo, você tem um array de estruturas dentro da estrurar mais externa, você acederia à prioridade do segundo elemento (lembrando que o primeiro elemento de um array em C tem índice 0) com a seguinte expressão.

r.fila[1].prioridade 


Explicação: o dado r, do tipo struct Tpfila, tem um campo fila, que é um array de elementos que são, cada um, do tipo struct Tpchave, possuindo, portanto, os campos prioridade, que é um inteiro, e elem, que é um caráter.

Alguém já disse que se leem expressões em C de trás para frente. É uma bincadeira, mas tem lá o seu sentido: veja que na expressão acima, obtém-se "o valor da prioridade (parte) que compõe (".") o valor do segundo elemento ("[1]") da fila (parte) que compõe (".") o valor de r".






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts