prof. Nunzio Brugaletta Programmazione e linguaggio C

EnneBi - Programmazione
Avanti Indietro Inizio


6 Strutture di dati e memoria dinamica

6.1 Allocazione dinamica della memoria

Non sempre è nota a priori la dimensione di una struttura e quindi non è sempre possibile utilizzare una struttura sequenziale che richiede la conoscenza di tale dimensione per poter allocare spazio in memoria. In questi casi viene utilizzata la struttura concatenata: si alloca spazio in memoria quando serve e tutto quello che serve, compatibilmente ovviamente con le risorse disponibili, e si collegano gli elementi fra di loro tramite puntatori, in modo che ogni elemento fornisca informazioni su dove trovare in memoria il successivo della lista.

Ora si esamineranno gli strumenti che mette a disposizione il linguaggio C per l’allocazione dinamica della memoria, in seguito si vedranno le funzioni principali per la gestione di una struttura concatenata.

...
typedef struct rec {
  char titolo[50]; 
  char autore[20]; 
  char editore[20]; 
  float prezzo; 
}libro;
...
int nbyte1,nbyte2;
...
nbyte1 = sizeof(int);
nbyte2 = sizeof(libro);
...

Le altre due funzioni trattate di seguito richiedono l’inclusione, nel programma che intende utilizzarle, di un nuovo header. Occorre specificare: #include <stdlib.h>.

...
typedef struct rec {
  char titolo[50]; 
  char autore[20]; 
  char editore[20]; 
  float prezzo; 
}libro;
...
libro *p1;	/*1*/
...
p1 = (libro *) malloc(sizeof(libro));	/*2*/
...


Avanti Indietro Inizio

http://ennebi.solira.org ennebi@solira.org