Título: Duda con respecto a struct dentro de struct Publicado por: Naimaderis en 1 Abril 2017, 22:14 pm Hola, ¿Como estan? Me ha surgido una duda, supongamos que yo tengo el siguiente struct:
Código
Ahora creo el tipo`textito_tip' que es un puntero a los elementos de `prueba_text'. Código
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
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
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 mi duda es como accedo ahora, ya que esta dentro de prueba_info,supuse que seria algo asi: Código 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 o tengo que crear uno nuevo con "new" y asignarle h? Título: Re: Duda con respecto a struct dentro de struct Publicado por: ivancea96 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
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 Asignar un prueba_text* a un textito_tipo no parece algo correcto a primera vista. |