elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con respecto a struct dentro de struct
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con respecto a struct dentro de struct  (Leído 1,543 veces)
Naimaderis

Desconectado Desconectado

Mensajes: 73



Ver Perfil
Duda con respecto a struct dentro de struct
« en: 1 Abril 2017, 22:14 pm »

Hola, ¿Como estan? Me ha surgido una duda, supongamos que yo tengo el siguiente struct:

Código
  1.  
  2. struct prueba_text {
  3.  char caracteres[20];
  4.  int longitud;
  5. };
  6.  
  7.  

Ahora creo el tipo`textito_tip' que es un puntero a los elementos de `prueba_text'.

Código
  1. typedef prueba_text *textito_tip;
  2.  

Aca es donde viene mi duda, he creado una struct "prueba_text" la cual tiene dos campos, caracteres y longitud, que sucede si yo creo una nueva estructura
cuyos campos sean "int numero" y "textito_tip texto":

Código
  1. struct prueba_info {
  2.  int numero;
  3.  textito_tip texto;
  4. };
  5.  

Segun mi logica, prueba_info deberia tener 3 campos, "numero" y los dos que toma de "prueba_text" que son "caracteres" y "longitud"

¿Esto es asi?

Si es asi, entonces creo un nuevo tipo "info_tip" el cual es puntero a los elementos de "prueba_info"

Código
  1. typedef prueba_info *info_tip;
  2.  

La otra duda es, en caso de ser asi, yo para acceder a los elementos de rep_text, lo hacia de la siguiente forma:
Código
  1. textito_tip res = new prueba_text /* lo creo  y ahora accedo:*/
  2. res -> longitud = 4;
  3.  
mi duda es como accedo ahora, ya que esta dentro de prueba_info,supuse que seria algo asi:
Código
  1. info_tip hola = new prueba_info;
  2. hola -> numero;
  3.  
y en la parte que "hereda" del otro?
"hola -> longitud" ?

La otra pregunta seria:
Suponiendo que me pasan como parametro de una funcion "info_tip h" entonces para acceder solo tengo que poner
Código
  1. h -> numero;
o tengo que crear uno nuevo con "new" y asignarle h?


« Última modificación: 1 Abril 2017, 22:55 pm por Naimaderis » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.411


ASMático


Ver Perfil WWW
Re: Duda con respecto a struct dentro de struct
« Respuesta #1 en: 2 Abril 2017, 00:10 am »

En primer lugar: prueba_info no tiene los campos longitud ni caracteres. Lo único que tiene son 2 campos: numero y texto. Para acceder a longitud y a caracteres, tendrías que hacer: str.texto->longitud

Luego: ¿Por qué punteros? Si usas punteros dentro de la estructura, tendrás que reservar memoria con new también:
Código
  1. prueba_info* str = new prueba_info();
  2. str->texto = new prueba_text();
  3. str->texto->longitud = 10;

Y otro detalle: usar typedef es útil, pero no de ese modo.. En primer lugar, recuerda que typedef es una herramienta, pero no hay nada que no se pueda hacer sin él. Hacer un typedef de un puntero a un tipo muy rara vez es una buena opción (salvo que el nombre del alias sea muy característico).
Fíjate en el código que puse arriba. Ahora, compara con esta línea:
Código
  1. textito_tip res = new prueba_text
Asignar un prueba_text* a un textito_tipo no parece algo correcto a primera vista.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con struct dentro de libreria « 1 2 »
Programación C/C++
dkmarley 10 6,766 Último mensaje 23 Julio 2010, 16:51 pm
por dkmarley
[SOLUCIONADO]¿Como printear un valor de un struct dentro de otro struct?
Programación C/C++
Firos 0 4,168 Último mensaje 24 Marzo 2011, 13:47 pm
por Firos
Un struct dentro de una matriz
Programación C/C++
freakx 2 4,735 Último mensaje 23 Enero 2012, 02:16 am
por freakx
cargar struct dentro de una matriz
Programación C/C++
eriss_15 1 1,742 Último mensaje 18 Mayo 2012, 06:33 am
por exel
Dimensionar un vector dentro de un struct « 1 2 »
Programación C/C++
ShadowA7X 10 4,767 Último mensaje 9 Noviembre 2014, 01:45 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines