Trabajar los campos de una estructura con o sin punteros (ventajas/desventajas)

Iniciado por NOB2014, 29 Junio 2016, 20:57 PM

0 Miembros y 1 Visitante están viendo este tema.

NOB2014

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. -

typedef struct{
char nombre[30];
char calle[30];
char ciudad[30];
size_t edad;
}_contacto;


typedef struct{
char *nombre;
char *calle;
char *ciudad;
size_t edad;
}_contacto;


Saludos.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

AlbertoBSD

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.

[youtube=640,360]https://www.youtube.com/watch?v=DOqtEMW1Nqk[/youtube]


[youtube=640,360]https://www.youtube.com/watch?v=HzYRDD_-1Yc[/youtube]

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

NOB2014

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.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

crack81

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...
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

NOB2014

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-