Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [C] Puntatori a Struct

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337

    [C] Puntatori a Struct

    dove sbaglio?
    codice:
    #include <stdio.h>
    #include <string.h>
    
    typedef struct {
                    int anni;
    	        char nome[20];
    		} persona;
    persona persone[100];
    persona[10] *puntatore;
    
    int main(){
    	puntatore->anni = 20;
    }

  2. #2
    potremmo rilegare tutti i tuoi thread e fare una guida nuova

    parere mio:

    la sintassi persona [10] *puntatore e' errata
    al massimo persona *puntatore[10], ma nn sono sicuro neanche di questa

    fai persona elenco[10]

    elenco e' gia un puntatore che punta al primo elemento dell'array elenco

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Cosa vuoi dire con

    persona[10] *puntatore;


    ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    io volevo fare un puntatore in pratica alla decima struttura di persona definita in persone[100]

    dopo di che

    mettere

    persone[10].anni = 20;

    però non ci sono riuscito

  5. #5
    allora scrivi

    persona *puntatore = &persone[10];

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Hai studiato i puntatori?

    Puoi fare così

    persona *puntatore = &persone[10];
    puntatore->anni = 20;

    oppure così

    persona *puntatore = persone+10;
    puntatore->anni = 20;

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    ho provato così ma non funge
    (la sto studiando ora l'aritmetica dei puntatori)
    codice:
    #include <stdio.h>
    #include <string.h>
    
    typedef struct {
                    int anni;
    				char nome[20];
    				} persona;
    persona persone[100];
    
    persona *puntatore;
    
    int main(){
    
    
    (puntatore+9)->anni = 20;
    
    printf ("persone[10] anni %d", persone[10].anni);
    
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    Originariamente inviato da oregon

    persona *puntatore = persone+10;
    puntatore->anni = 20;
    ma perchè devo fare +10 e non +9
    in fondo io punto già all'elemento 0

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ma hai letto le risposte?

    In questo tuo codice non assegni nessun valore al puntatore ...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da {-_-}
    ma perchè devo fare +10 e non +9
    in fondo io punto già all'elemento 0
    Tu hai scritto che volevi fare

    persone[10].anni = 20;

    e non

    persone[9].anni = 20;

    !!

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.