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

10: Allocazione dinamica della memoria Vers. 9.1 – Ottobre 2025
Operatore di differenza fra due puntatori
Definizione: L ' operatore di differenza fra puntatori richiede due operandi entrambi di tipo puntatore, aventi tipo base omogeneo( per esempio due puntatori a intero, due puntatori a carattere, e via dicendo). Il risultato della differenza è la differenza aritmetica fra i due indirizzi specificati dai puntatori, divisa per la dimensione del tipo base.
Per esempio, se p contiene l’ indirizzo 1008 e q contiene l’ indirizzo 1000, ed entrambi sono puntatori al tipo intero e la dimensione di un INT è 4 byte, allora: q- p vale 2 ossia( q – p) / DimensioneDi( INT) =( 1008-1000)/ 4 = 8 / 4 = 2
Significato
L ' operazione di differenza fra puntatori è significativa se i due operandi contengono gli indirizzi di due celle diverse del medesimo array, e se il tipo base dell ' array coincide con quello dei due puntatori.
In questo caso, infatti, la differenza fra i due puntatori corrisponde al numero di celle( distanza o offset) dell ' array che separano la cella puntata dal puntatore di valore minore da quella del puntatore di valore maggiore.
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 21