Hebben bepaaldd de structuur, kunt u een geval van het verklaren en waarden aan de leden toewijzen gebruikend de puntaantekening. Het volgende voorbeeld illustreert het gebruik van de maandstructuur.
#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;
}
De output van het programma zal als volgt zijn:
January is abbreviated as Jan and has 31 days |
Alle ANSI C compilers staan u toe om één structuur aan andere toe te wijzen, dat een lid-wijs exemplaar een uitvoert. Als wij maandstructuren genoemd m1 en m2 hadden, dan konden wij de waarden van m1 aan m2 met het volgende toewijzen:
- Structuur met de Leden van de Wijzer.
- De structuur initialiseert.
- Het overgaan van een Structuur tot een Functie.
- Wijzers en Structuren.
Structuren met de Leden van de Wijzer in C
De koorden van de holding in een vaste grootteserie is inefficiënt gebruik van geheugen. Een efficiëntere benadering zou zijn wijzers te gebruiken. De wijzers worden gebruikt in structuren op precies de zelfde manier zij in normale wijzerdefinities worden gebruikt. Zie een voorbeeld:
#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;
}
De output van het programma zal als volgt zijn:
January is abbreviated as Jan and has 31 days |
|