4° Anno TEORIA 2. Allocazione dinamica della memoria | Page 10

10 : Allocazione dinamica della memoria Vers . 8.3 – Ottobre 2023
Esempio : ALGORITMO Esempio _ 3 PROCEDURA main () p : PUNTATORE A INT INIZIO Alloca ( p , DimensioneDi ( INT )) ( 1 )
SE ( p ≠ NULL )
ALLORA Scrivi (" Allocazione OK !") < B1 > // Blocco di istruzioni da eseguire
// se allocazione ha avuto esito positivo Dealloca ( p ) ( 2 )
ALTRIMENTI // se allocazione ha avuto esito negativo Scrivi (" Allocazione non riuscita !") FINE SE
FINE
( 1 )
Segmento HEAP
100
101
102
103
100
p
( 2 )
4 byte
Segmento STACK
Segmento Dati
Segmento Codice
// Utilizzando il linguaggio C – Esempio _ 3 # include < stdio . h > # include < stdlib . h >
int main ( int argc , char * argv []) { int * p ;
// La funzione malloc restituisce un void * su cui va fatto un CAST a seconda del tipo p = ( int *) malloc ( sizeof ( int )); //( 1 ) if ( p != NULL ) { printf (" Allocazione OK !"); //< B1 > free ( p ); //( 2 ) } else { printf (" Allocazione non riuscita !"); }
return 0 ; }
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 10