Having definió la estructura, puedes declarar un caso de él y asignar valores a los miembros que usan la notación del punto. El ejemplo siguiente ilustra el uso de la estructura del mes.
#include <stdio.h>
#include <string.h>
struct month
{
char name[10];
char abbreviation[4];
int days;
};
int main()
{
struct month m;
strcpy(m.name, "January");
strcpy(m.abbreviation, "Jan");
m.days = 31;
printf("%s is abbreviated as %s and has %d days\n", m.name, m.abbreviation, m.days);
return 0;
}
La salida del programa será como sigue:
January is abbreviated as Jan and has 31 days |
Todos los compiladores C del ANSI permiten que asignes una estructura a otra, realizando una copia miembro-sabia. Si teníamos estructuras del mes llamadas m1 y m2, entonces podríamos asignar los valores de m1 al m2 con el siguiente:
- Estructura con los miembros del indicador.
- La estructura se inicializa.
- Pasar una estructura a una función.
- Indicadores y estructuras.
Estructuras con los miembros del indicador en C
Sostener secuencias en un arsenal de tamaño fijo es uso ineficaz de la memoria. Un acercamiento más eficiente sería utilizar indicadores. Los indicadores se utilizan en estructuras exactamente de la misma manera que se utilizan en definiciones normales del indicador. Veamos un ejemplo:
#include <string.h>
#include <malloc.h>
struct month
{
char *name;
char *abbreviation;
int days;
};
int main()
{
struct month m;
m.name = (char *)malloc((strlen("January")+1) *
sizeof(char));
strcpy(m.name, "January");
m.abbreviation = (char *)malloc((strlen("Jan")+1) *
sizeof(char));
strcpy(m.abbreviation, "Jan");
m.days = 31;
printf("%s is abbreviated as %s and has %d days\n",
m.name, m.abbreviation, m.days);
return 0;
}
La salida del programa será como sigue:
January is abbreviated as Jan and has 31 days |
|