10: Allocazione dinamica della memoria Vers. 9.1 – Ottobre 2025
ALGORITMO Esempio _ 3 _ NOT _ OK PROCEDURA main() p: PUNTATORE A INT INIZIO Alloca( p, DimensioneDi( INT))
NOTA BENE
SE( p ≠ NULL) ALLORA
< B1 > // Blocco di istruzioni da eseguire // se allocazione ha avuto esito positivo
ALTRIMENTI // se allocazione ha avuto esito negativo Scrivi(" Allocazione non riuscita!") Dealloca( p) FINE SE
Dealloca( p) FINE
Il posizionamento della chiamata alla procedura Dealloca() all’ interno del codice nella posizione indicata, può avere per l’ esecuzione del programma esiti infausti ed imprevedibili( perfino un abend oppure un crash) in quanto, in caso di allocazione con esito negativo, si tenterà di deallocare una zona di memoria inesistente. Tale errore è reso ancora più subdolo dal fatto che non sarà possibile accorgersene fino a che l’ allocazione dinamica in questione avrà esito positivo.
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 11