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

10 : Allocazione dinamica della memoria Vers . 8.3 – Ottobre 2023
Esempio 5 : Effetto collaterale ALIASING
Segmento HEAP
ALGORITMO Esempio _ 5 _ Area _ Zombie PROCEDURA main () p , q : PUNTATORE A INT INIZIO Alloca ( p , DimensioneDi ( INT )) ( 1 )
SE ( p ≠ NULL )
ALLORA Alloca ( q , DimensioneDi ( INT )) ( 2 )
SE ( q ≠ NULL ) ALLORA p � q
( 3 ) // ALIASING
Dealloca ( q )
// Attenzione al terribile SIDE EFFECT // Ora c ’ è un area di memoria inaccessibile // NON puntata più da alcun puntatore // che non può essere più rilasciata
ALTRIMENTI
Scrivi (" Allocazione di q non riuscita !") FINE SE
Dealloca ( p ) ALTRIMENTI
Scrivi (" Allocazione di p non riuscita !") FINE SE
FINE
( 3 )
100 101 102 103
( 1 ) ( 2 )
100
200
p
200 201 202 203
( 3 )
200
q
4 byte
Segmento STACK
Segmento Dati
Segmento Codice
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 13