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

10 : Allocazione dinamica della memoria Vers . 8.3 – Ottobre 2023
ALGORITMO Array _ Record _ Dinamico
MAXNUMCHAR 30 MINNUMMAGLIA 1 MAXNUMMAGLIA 99
TIPO Calciatore = RECORD Cognome : ARRAY [ MAXNUMCHAR ] DI CHAR Nome : ARRAY [ MAXNUMCHAR ] DI CHAR Maglia : INT
FINE RECORD
PROCEDURA main ( )
p : PUNTATORE A Calciatore i , n : INT ;
INIZIO
/* Check sul numero di elementi possibili dell ' array dinamico di RECORD */ /* VERA DINAMICITA ': unico limite la quantità di memoria assegnata al TASK */ RIPETI Leggi ( n ) FINCHE ’ ( n ≥ 1 )
/* Allocazione DINAMICA ARRAY di record */ Alloca ( p , n * DimensioneDi ( Calciatore ))
SE ( p ≠ NULL )
ALLORA /* Caricamento e controllo campi dell ’ ARRAY di record dinamico */ PER i� 0 A ( n-1 ) ESEGUI
RIPETI
Leggi (( p + i ) �Cognome ) FINCHE ’ ( Lunghezza (( p + i ) �Cognome ) ≠ 0 ) AND ( Lunghezza (( p + i ) �Cognome ) ≤ MAXNUMCHAR )
RIPETI
Leggi (( p + i ) �Nome ) FINCHE ’ ( Lunghezza (( p + i ) �Nome ) ≠ 0 ) AND ( Lunghezza (( p + i ) �Nome ) ≤ MAXNUMCHAR )
RIPETI
Leggi (( p + i ) �Maglia ) FINCHE ’ (( p + i ) �Maglia ) ≥ MINNUMMAGLIA ) AND (( p + i ) �Maglia ) ≤ MAXNUMMAGLIA ) i � i + 1 FINE PER
/* Visualizzazione campi dell ’ ARRAY di record allocato dinamico */
PER i� 0 A ( n-1 ) ESEGUI Scrivi (( p + i ) �Cognome ) Scrivi (( p + i ) �Nome ) Scrivi (( p + i ) �Maglia ) i � i + 1 FINE PER
/* Deallocazione ARRAY di record allocato DINAMICAMENTE */ Dealloca ( p )
ALTRIMENTI
Scrivi (" Allocazione non riuscita !") FINE SE
FINE
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 24