PDA

View Full Version : [c++] leggere un dato da una struttra


vermaccio
08-05-2006, 10:49
se avete una immagine e avete immagazzinato il valore dell'altezza e della larghezza dell'immagine in una struttra del tipo


typedef struct dim {
int altezza;
int larghezza;
}

poi avete creato una variabile
dim dimensione;

in cui avete stoccato
dim.altezza=100;
dim.larghezza=200;

se ora create una variabile
int nuova;

come faccio adassegnare a questa variabile il numero "100" stoccato nella struttura "dim", sezione "altezza"?

per caso con
nuova=dim. altezza;
?

andbin
08-05-2006, 10:57
typedef struct dim {
int altezza;
int larghezza;
}Sarebbe corretto dichiararla così:
typedef struct {
int altezza;
int larghezza;
} dim;
per caso con
nuova=dim. altezza;
?Esatto.

vermaccio
08-05-2006, 10:58
mi da errore
error C2228: left of '.altezza' must have class/struct/union type

andbin
08-05-2006, 11:13
mi da errore
error C2228: left of '.altezza' must have class/struct/union typePosta il codice.

TuLKaS85
08-05-2006, 11:20
il problema secondo me è qui :

dim.altezza=100;
dim.larghezza=200;


se la variabile di tipo dim è dimensione, dovresti fare questa assegnazione
dim dimensione;
dimensione.altezza=100;
dimensione.larghezza=200;
int nuovo;
nuovo=dimensione.altezza;

fammi sapere come và... :)

vermaccio
08-05-2006, 11:24
magari fosse facile.
uso librerie esterne.
il fatto è che io "credo" che la struttura "dim2 sia una struttra come ho detto.
ma non sono sicuro.

vediamola da un altro punto di vista.

se tu trovi in un listato la definizione

dim dimensione;

ma NON hai un reference che ti dica come è (se lo è) fatta la struttura "dim".... come fai?

c'è un modo per "esplorare" la definizione di struttura "dim" per sapere che diavolo contiene, che campi contiene, se poi è una struttura o che altro?

vermaccio
08-05-2006, 11:25
il problema secondo me è qui :

dim.altezza=100;
dim.larghezza=200;


se la variabile di tipo dim è dimensione, dovresti fare questa assegnazione
dim dimensione;
dimensione.altezza=100;
dimensione.larghezza=200;
int nuovo;
nuovo=dimensione.altezza;

fammi sapere come và... :)


ho fatto un errore di copia incola. i listato è già così :)

andbin
08-05-2006, 11:35
se tu trovi in un listato la definizione

dim dimensione;Beh, quel tipo "dim" sarà (e deve essere) pur dichiarato da qualche parte, no? Magari in un qualche include della libreria esterna.

TuLKaS85
08-05-2006, 11:42
se scrivi solo dimensione. ed aspetti dovrebbe dirti tutti gli oggetti che la struttura contiene...

DanieleC88
08-05-2006, 15:49
Non è che dim è un puntatore? Prova con dim->altezza, etc...