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

10 : Allocazione dinamica della memoria Vers . 8.3 – Ottobre 2023
// Utilizzando il linguaggio C – Esempio _ 6 _ Confronto _ Ptr # include < stdio . h > # include < stdlib . h >
# define FALSO 0 # define VERO 1
int main ( int argc , char * argv []) { int * p , * q ; int a , b ; int esito ;
a = 5 ; b = 5 ;
p = & a ; q = & b ;
// Confronto--- > se puntatori DIVERSI ossia se puntano ad aree di memoria con indirizzi differenti if ( p != q ) { esito = VERO ; } else { esito = FALSO ; }
printf (" Esito = % d ", esito );
return 0 ; }
// Utilizzando il linguaggio C – Esempio _ 7 _ Confronto _ Ptr # include < stdio . h > # include < stdlib . h >
# define FALSO 0 # define VERO 1
int main ( int argc , char * argv []) { int * p , * q ; int esito ;
p = ( int *) malloc ( sizeof ( int ));
if ( p != NULL ) { // ALIASING q = p ;
// Confronto --- > se puntatori UGUALI ossia puntano alla stessa area di memoria if ( p == q ) { esito = VERO ; } else { esito = FALSO ; }
printf (" Esito = % d ", esito ); free ( p ); } else { printf (" Allocazione non riuscita !"); }
return 0 ; }
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 15