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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Crear arrays dinamicos en struct
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear arrays dinamicos en struct  (Leído 3,455 veces)
manri98

Desconectado Desconectado

Mensajes: 24


8086. Odisea de despacio...


Ver Perfil
Crear arrays dinamicos en struct
« en: 11 Noviembre 2016, 13:38 pm »

Hola a todos, tengo el siguiente problema. He creado la siguiente estructura, mi intención es que tenga un booleano, un array de caracteres(name)  y uno bidimensional(episodes)
Ejemplo:
    name = {"Name of the serie"}

    episodes = {"season1Title","Season2Title", "Season3Title"}
                       {"episode1","episode1","eisode1"}
                       {"episode2","episode2","eisode2"}
                     
    isAll = true


Código
  1. typedef struct{
  2.    char *name;
  3.    char *episodes;
  4.    bool isAll;
  5. }show;
  6.  

Los datos que almacenará se sabrán en tiempo de ejecución y quería saber si era posible reservar dinámicamente espacio de memoria. En el código los escribí como punteros para mas tarde hacer esto:
Código
  1. show myShow;
  2. myShow.name = (char *)malloc(longitudNombre*sizeof(char));
  3.  
  4.  
¿Esto sería corecto?¿Como lo haría para el array bidimensional? Además me surge la duda de como podría recorrer el array después. Si fuese sumando uno al puntero, creo que tendría que mirar cuando el valor es el byte nulo.


En línea

(\/)4|\|r1 98
-Cuantos dálmatas había en la peli?
-101
-por el culo te la hinco
manri98

Desconectado Desconectado

Mensajes: 24


8086. Odisea de despacio...


Ver Perfil
Re: Crear arrays dinamicos en struct
« Respuesta #1 en: 11 Noviembre 2016, 19:33 pm »

Seguí investigando. Creo que declarar un array dentro del struct no es posible porque al crear una instancia el compilador necesitaría conocer el tamaño de este antes. No se estoy equivocado.
Así que sigo como antes :(


En línea

(\/)4|\|r1 98
-Cuantos dálmatas había en la peli?
-101
-por el culo te la hinco
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Crear arrays dinamicos en struct
« Respuesta #2 en: 11 Noviembre 2016, 21:11 pm »

Puedes crear un array dinámico dentro del struct ya que el miembro es un puntero, y ese es un tipo de dato con el tamaño bien definido.
El array propiamente dicho se crea en otra zona de memoria a la que apuntarás con el puntero del struct.
En línea

manri98

Desconectado Desconectado

Mensajes: 24


8086. Odisea de despacio...


Ver Perfil
Re: Crear arrays dinamicos en struct
« Respuesta #3 en: 12 Noviembre 2016, 04:27 am »

Y eso lo haría asi?
Código
  1. show myShow;
  2. myShow.name = (char *)malloc(longitudNombre*sizeof(char));
  3.  
En línea

(\/)4|\|r1 98
-Cuantos dálmatas había en la peli?
-101
-por el culo te la hinco
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Crear arrays dinamicos en struct
« Respuesta #4 en: 12 Noviembre 2016, 10:32 am »

Sí. Recuerda aplicar free a los datos antes de que la estructura se destruya.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear botones dinamicos en VB
Programación Visual Basic
akss_wm 6 9,804 Último mensaje 27 Octubre 2005, 18:12 pm
por Kizar
Problema con arrays dinámicos
Programación C/C++
Khronos14 4 2,884 Último mensaje 31 Diciembre 2010, 23:04 pm
por Khronos14
Problema con Arrays dinámicos multidimensionales con dictionary
.NET (C#, VB.NET, ASP)
WHK 3 2,648 Último mensaje 12 Julio 2013, 21:34 pm
por WHK
Dock PHP , Nueva App para crear sitios web dinamicos, reemplazara artisteer?
Desarrollo Web
Graphixx 1 3,331 Último mensaje 17 Julio 2013, 20:56 pm
por #!drvy
Crear dll dinamicos
Programación C/C++
patilanz 8 3,154 Último mensaje 29 Diciembre 2014, 20:34 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines