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; }
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; }
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
Cosa vuoi dire con
persona[10] *puntatore;
?
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
allora scrivi
persona *puntatore = &persone[10];
Hai studiato i puntatori?
Puoi fare così
persona *puntatore = &persone[10];
puntatore->anni = 20;
oppure così
persona *puntatore = persone+10;
puntatore->anni = 20;
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); }
ma perchè devo fare +10 e non +9Originariamente inviato da oregon
persona *puntatore = persone+10;
puntatore->anni = 20;
in fondo io punto già all'elemento 0
Ma hai letto le risposte?
In questo tuo codice non assegni nessun valore al puntatore ...
Tu hai scritto che volevi fareOriginariamente inviato da {-_-}
ma perchè devo fare +10 e non +9
in fondo io punto già all'elemento 0
persone[10].anni = 20;
e non
persone[9].anni = 20;
!!