Non mi sono chiari alcuni aspetti di questo spezzone di programma:

#include <stdio.h>

...

struct libro /*1*/

{

char titolo[50];

char autore[20];

char editore[20];

long int prezzo;

};

...

main()

{

struct libro lib1,lib2; /*2*/

...

gets(lib1.titolo); /*3*/

...

printf("%ld",lib2.prezzo); /*4*/

...

}
Perchè le variabili titolo autore e editore sono dichiarate come degli array?
e perchè la variabile prezzo no? se necessario posso postare anche il resto del programma..