PDA

Visualizza la versione completa : [C] Struttura di struttura


Vincent81
20-01-2006, 13:32
Ho avuto problemi nell'usare una struttura all'interno di un'altra struttura...
un esempio semplicissimo e' quello che ho visto in una lezione di html.it sul linguaggio c, che ho modificata in questo modo:

#include <stdio.h>
#include <stdlib.h>

typedef struct pagina
{
int paginaattuale;
} t_pagina;



typedef struct libro
{
char titolo[100];
char autore[50];
int anno_pubblicazione;
float prezzo;
t_pagina guida2;
}t_libro;

t_libro guida={"Guida al C", "Fabrizio Ciacchi", 2003, 45.2};
t_pagina guida2={25};

main()
{
printf("titolo del libro: %s \n" , guida.titolo);
printf("valore di pagina attuale %d \n" , guida2.paginaattuale);
printf("Pagina attuale: %d \n" , guida.guida2.paginaattuale);
system("pause");
}


Ora...
al RUN la stampa e' la seguente:
******************************
Titolo del libro: Guida al C
Valore di Pagina Attuale: 25
Pagina attuale: 0
******************************

insomma stampando il campo del valore della seconda struct tramite la prima (cioe guida.guida2.paginaattuale) mi da 0
mentre il valore reale e' 25 (che si puo vedere dalla stampa diretta di guida2.paginaattuale)

Insomma perche mi stampa 0???
dove sbaglio???

grazie mille

king64
20-01-2006, 14:06
Con l'istruzione

t_pagina guida2={25};
dichiari e inizializzi la variabile guida2 con il valore 25, che diversa dal campo guida2 della struttura libro .
Infatti con l'istruzione

t_libro guida={"Guida al C", "Fabrizio Ciacchi", 2003, 45.2,25};
otterrai il risultato desiderato . Saluti :ciauz:

oregon
20-01-2006, 18:54
Anche se lo ha detto King64, vorrei farti notare che l'errore (grave) e' aver considerato le due variabili come una (guida2) contenuta nell'altra (guida) mentre sono del tutto indipendenti.

Loading