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.
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
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.
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...
Hola, crack81.
Gracias por el aporte.
Saludos.