Liberare memoria
Quando avete rifinito con la memoria che è stata assegnata, dovreste non dimenticarti mai di liberare la memoria poichè libererà le risorse e migliorerà la velocità. Liberarsi ha assegnato la memoria, usa la funzione libera.
free(ptr);
Strutture
Così come i tipi di dati di base, la C ha un meccanismo della struttura che permette che raggruppiate gli elementi dei dati che sono riferiti l'un l'altro sotto un nome comune. Ciò si riferisce a comunemente come tipo prestabilito dall'utente.
Lo struct di parola chiave inizia la definizione della struttura e una modifica dà il nome unico alla struttura. I tipi di dati ed i nomi variabili hanno aggiunto alla struttura sono membri della struttura. Il risultato è una mascherina della struttura che può essere usata come tipo specifier. Ciò che segue è una struttura con una modifica del mese.
struct month
{
char name[10];
char abbrev[4];
int days;
};
Un tipo della struttura è definito solitamente vicino all'inizio di una lima usando una dichiarazione del typedef. il typedef definisce e chiama un nuovo tipo, permettendo il relativo uso durante il programma. il typedef si presenta solitamente subito dopo le dichiarazione del #include e di #define in una lima.
La parola chiave del typedef può essere usata per definire una parola per riferirsi alla struttura piuttosto che a specificare la parola chiave dello struct con il nome della struttura. È solita chiamare il typedef nelle lettere maiuscole. Qui sono gli esempi della definizione della struttura.
typedef struct {
char name[64];
char course[128];
int age;
int year;
} student;
Ciò definisce un nuovo tipo allievo che le variabili di tipo allievo possono essere dichiarate come segue.
student st_rec;
Avviso quanto simile questo è a dichiarare un interno o un galleggiante. Il nome variabile è st_rec, esso ha membri denominati nome, corso, età ed anno. Similmente,
typedef struct element
{
char data;
struct element *next;
} STACKELEMENT;
A variable of the user defined type struct element may now be declared as follows.
STACKELEMENT *stack;
Considerare la seguente struttura:
struct student
{
char *name;
int grade;
};
Un indicatore all'allievo dello struct può essere definito come segue.
struct student *hnc;
Nell'accedere ad un indicatore ad una struttura, l'operatore dell'indicatore del membro, - > è usato anziché l'operatore del puntino. Per aggiungere un grado ad una struttura,
s.grade = 50;
Potreste assegnare un grado alla struttura come segue.
s->grade = 50;
Come con i tipi di dati di base, se desiderate i cambiamenti fatti in una funzione ai parametri passati per essere persistenti, dovete passare da riferimento (passare l'indirizzo). Il meccanismo è esattamente lo stesso dei tipi di dati di base. Passare l'indirizzo e riferir alla notazione usando variabile dell'indicatore.
|