Ho sentito che i puntatori devono essere prima convertiti in null per garantire la coerenza dei valori tra piattaforme diverse e devono utilizzare l'identificatore di formato %p
. Perché è e quali sono esattamente i problemi?Utilizzo di puntatori void su piattaforme diverse
int x=100;
int *pi=&x;
printf("value of pi is: %p",(void*)pi);
Si noti che la citazione è sicuramente specifica per POSIX, IIRC lo standard richiede semplicemente che due puntatori diversi abbiano un output specifico di implementazione diverso. –
@MatteoItalia Grazie. Aggiornato. –
Bella citazione, ma in pratica, come potrebbe il fatto che ** il cast implicito non avvenga ** influisce sul valore dell'argomento passato (in altre parole, come può un cast per 'void *' rendere il valore di ' pi' diverso)? –