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

10: Allocazione dinamica della memoria Vers. 9.1 – Ottobre 2025
USO DEI PUNTATORI CON LA STRUTTURA DATI RECORD
Abbiamo già visto in precedenza come creare tipi di dato utente a partire da tipi di dato base grazie alla pseudoistruzione TIPO( analoga nel linguaggio C l’ istruzione typedef).
Utilizziamo quanto appreso finora per realizzare un algoritmo che legga( controllandone i valori) e visualizzi poi a video un record allocato dinamicamente( N. B. vedi file PDF https:// www. riochierego. it / mobile / docs / terza / teo / Metodologie-di-progettazione-e- Sottoprogrammi. pdf da slide n. 82 in poi)
ALGORITMO Record _ Singolo _ Dinamico
TIPO Calciatore = RECORD Cognome: ARRAY [ 30 ] DI CHAR Nome: ARRAY [ 30 ] DI CHAR Maglia: INT
FINE RECORD
PROCEDURA main() p: PUNTATORE A Calciatore INIZIO
/* Allocazione record DINAMICA */ Alloca( p, DimensioneDi( Calciatore))
SE( p ≠ NULL) ALLORA
N. B. ATTENZIONE del tutto analogo a:( Lunghezza( p � Cognome) ≠ 0) AND( Lunghezza( p � Cognome) ≤ 30)
/* Caricamento e controllo campi del record */ RIPETI
Leggi((* p). Cognome) FINCHE’( Lunghezza((* p). Cognome) ≠ 0) AND( Lunghezza((* p). Cognome) ≤ 30)
RIPETI
Leggi((* p). Nome) FINCHE’( Lunghezza((* p). Nome) ≠ 0) AND( Lunghezza((* p). Nome) ≤ 30)
RIPETI
Leggi((* p). Maglia) FINCHE’((* p). Maglia) ≥ 1) AND((* p). Maglia) ≤ 99)
/* Visualizzazione campi del record */ Scrivi((* p). Cognome) Scrivi((* p). Nome) Scrivi((* p). Maglia)
/* Deallocazione record allocato DINAMICAMENTE */ Dealloca( p)
ALTRIMENTI
Scrivi(" Allocazione non riuscita!") FINE SE
FINE
N. B. ATTENZIONE del tutto analogo a: Scrivi( p � Cognome) Scrivi( p � Nome) Scrivi( p � Maglia)
N. B. L’ operatore �( da non confondere con quello di assegnazione �) può essere applicato ESCLUSIVAMENTE ai PUNTATORI AD UN TIPO RECORD
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 22