Après avoir défini la structure, vous pouvez déclarer un exemple de lui et assigner des valeurs aux membres employant la notation de point. L'exemple suivant illustre l'utilisation de la structure de mois.
#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;
}
Le rendement du programme sera comme suit :
January is abbreviated as Jan and has 31 days |
Tous les compilateurs C de norme ANSI te permettent d'assigner une structure à l'autre, exécutant une copie membre-sage. Si nous avions des structures de mois appelées m1 et le m2, alors nous pourrions assigner les valeurs de m1 au m2 avec ce qui suit :
- Structure avec des membres d'indicateur.
- La structure initialise.
- Dépassement d'une structure à une fonction.
- Indicateurs et structures.
Structures avec des membres d'indicateur dans C
Tenir des cordes dans une rangée à taille fixe est utilisation inefficace de mémoire. Une approche plus efficace serait d'employer des indicateurs. Des indicateurs sont employés en structures exactement de la même manière qu'ils sont employés dans des définitions normales d'indicateur. Voyons un exemple :
#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;
}
Le rendement du programme sera comme suit :
January is abbreviated as Jan and has 31 days |
|