Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NOB2014 en 29 Junio 2016, 20:57 pm



Título: Trabajar los campos de una estructura con o sin punteros (ventajas/desventajas)
Publicado por: NOB2014 en 29 Junio 2016, 20:57 pm
Hola, que tengan un muy buen día. -
Tengo una duda con los miembros de las estructuras y es saber si hay alguna diferencia en declararla de una u otra manera, alguna de las 2 ofrece alguna ventaja, es conveniente hacerlo de una manera o de otra o es exactamente lo mismo, debería saber esto cuando estudiaba las cadenas, pero se nota que me lo saltee. -
Se entiende que me refiero a trabajar con o sin punteros. -

Código
  1. typedef struct{
  2. char nombre[30];
  3. char calle[30];
  4. char ciudad[30];
  5. size_t edad;
  6. }_contacto;

Código
  1. typedef struct{
  2. char *nombre;
  3. char *calle;
  4. char *ciudad;
  5. size_t edad;
  6. }_contacto;
  7.  

Saludos.


Título: Re: Trabajar los campos de una estructura con o sin punteros (ventajas/desventajas)
Publicado por: AlbertoBSD en 29 Junio 2016, 21:06 pm
Hola depende de que es lo que hagas con tu estructura,  si vas a escribir su contenido en un archivo es necesario que sea de estructura fija.

pero por ejemplo si no sabes cual va a ser el tamaño de la cadena de alguno de los miembros tienes que usar apuntadores.

La otra es que si vas a estar intercambiando valores entre una estructura y otra tambien es mas facil hacerlo con apuntadores.

Te dejo 2 videos uno sobre guardar estructuras en archivo y el otro sobre cuando usar un apuntador.

DOqtEMW1Nqk


HzYRDD_-1Yc

Saludos


Título: Re: Trabajar los campos de una estructura con o sin punteros (ventajas/desventajas)
Publicado por: NOB2014 en 29 Junio 2016, 21:14 pm
Hola, Alberto.
Estoy estudiando lista enlazada simple y como el libro está basado en el estudio de apuntadores
todo está hecho con punteros por eso la intriga. -

Muchas gracias y saludos.


Título: Re: Trabajar los campos de una estructura con o sin punteros (ventajas/desventajas)
Publicado por: crack81 en 29 Junio 2016, 21:37 pm
SI hay mucha diferencia ya que los char* te obliga a reservar memoria para poder almacenar tanto el nombre,calle y ciudad con la ventaja de que el tamaño no es fijo y pude ser tanto cadenas pequenas como grandes.

En el primer ejemplo estas atado a 30 caracteres y si necesitas mas pues te jodes, pero todo depende del problema ejemplo si declaras cada variable a 255 caracteres seria mas que suficiente yo jamas he visto un nombre, calle o ciudad mayor a 255 caracteres entonces siendo concretos para este problema  si especificaría el tamaño.

Saludos...


Título: Re: Trabajar los campos de una estructura con o sin punteros (ventajas/desventajas)
Publicado por: NOB2014 en 30 Junio 2016, 15:34 pm
Hola, crack81.
Gracias por el aporte.

Saludos.