Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Stampa di un puntatore

    Salve ragazzi,

    Avrei bisogno di un chiarimento sull'uso dei puntatori.
    Devo stampare il campo puntatore a intero formato int* num_km di una struct però con la seguente sintassi pirntf("%d",n->num_km) il compilatore mi da warning ovviamente perchè sto passando un campo puntatore quando viene richiesto di stampare un intero standard(%d),qualcuno saprebbe delucidarmi in merito alla sintassi da utilizzare?

    Grazie a tutti.

  2. #2
    Ma tu vuoi stampare l'indirizzo contenuto nel puntatore oppure il valore a cui punta? Nel primo caso usa la stringa di formato "%p", nel secondo ti basta dereferenziare il puntatore con l'operatore *.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Si d'accordo però a questo punto la sintassi come diventa?Perchè num_km rimane sempre il campo di una struct questo vuol dire che dovrei scrivere printf("%d",n->*num_km),in questo caso mi da errore,qual è la sintassi corretta?non mi serve il %p,nn ho bisogno distampare il codice esadecimale.

  4. #4
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    codice:
    printf("%d\n",*n->num_km);
    L' operatore -> ha la precedenza sull' operatore * , per cui se chiami *n->num_km stai chiamando il valore a cui punta n->num, se scrivessi (*n)->num_km sarebbe un errore perchè (*n) non sarebbe più un puntatore.

  5. #5
    Perfetto,Grazie 1000!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.