Definendo la struttura, potete dichiarargli un caso ed assegnare i valori ai membri che usando la notazione del puntino. Il seguente esempio illustra l'uso della struttura di mese.
#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;
}
L'uscita del programma sarà come segue:
January is abbreviated as Jan and has 31 days |
Tutti i compilatori C dell'ANSI permettono che assegniate una struttura ad un altro, effettuando una copia membro-saggia. Se avessimo strutture di mese denominate m1 e m2, allora potremmo assegnare i valori da m1 a m2 con quanto segue:
- Struttura con i membri dell'indicatore.
- La struttura si inizializza.
- Passando una struttura ad una funzione.
- Indicatori e strutture.
Strutture con i membri dell'indicatore in C
Le stringhe della tenuta in un allineamento di misura stabilita è uso inefficiente della memoria. Un metodo più efficiente sarebbe usare gli indicatori. Gli indicatori sono usati esattamente in strutture nello stesso senso che sono usati nelle definizioni normali dell'indicatore. Vediamo un esempio:
#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;
}
L'uscita del programma sarà come segue:
January is abbreviated as Jan and has 31 days |
|