Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    87

    [C] dubbio su accesso a variabili strutturate

    Ciao a tutti, mi è venuto un forte dubbio riguardo le strutture. Probabilmente banale ma mi rendo conto di non aver mai approfondito e ,difatti,spesso, la cosa mi induce in errore. Se io ho una struttura tipo

    codice:
    typedef struct ps{
                                  int x;
                                  int y;
                                  struct ps*next;}position;
    typedef position*listapos;
    
    
    typedef struct {
                                  int a;
                                  listapos posizioni;}item;
    typedef item*reg;
    Se io avessi un elemento
    codice:
    reg pippo
    e volessi accedere al valore di x dovrei fare
    codice:
    pippo.posizioni.x
    oppure
    codice:
    pippo.posizioni->x
    ? In pratica ho difficoltà a capire, detto in maniera molto spiccia, quando adoperare il punto e quando la freccia.
    Grazie mille ciao!

  2. #2
    Se hai un puntatore allora usa la -> altrimenti il punto.

    In questo caso nessuna delle due soluzioni è corretta in quanto dovrebbe essere:
    codice:
     pippo->posizioni->x
    Perché pippo è di fatto un puntatore a item, mentre posizioni è un puntatore a position.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    87
    Ok perché è implicito che si tratti di un puntatore, questo spiega anche molte cose sulle liste e questo vale indipendentemente che sia sul main o una qualunque altra funzione giusto? E se passassi una variabile non puntatore ad un'altra funzione questa comunque va "interrogata" utilizzando il punto giusto?

  4. #4
    Non penso di aver capito correttamente le domande, comunque provo a risponderti:
    1) Non cambia assolutamente niente tra funzione e main dal punto di vista della "sintassi",
    2) Come già detto se è non è un puntatore usi il punto altrimenti la freccia.

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.