[C] dubbio e problema con strutture

frab1
Buongiorno, ho iniziato l'approccio alle strutture in C. Ho scritto il seguente codice(banale) per annidare due strutture, o meglio includere una struttura in un'altra..ecco

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

struct anagrafica{
	char nome;
	char cognome;
};

struct agenda{
	struct anagrafica p1;
	struct anagrafica p2;
};

int main(void)
{
	struct agenda paziente;
	paziente.p1.nome=(int)"Topo";
	paziente.p1.cognome=(int)"Gigio";

	paziente.p2.nome=(int)"Remo";
	paziente.p2.cognome=(int)"Labarca";

	printf("Il paz.1 è Mr. %c\n",paziente.p2.cognome);

}


1)il codice l'avevo scritto senza le operazioni di casting..ma durante la compilazione mi chiede di fare il casting con un intero, perchè?
2)Perche' non mi stampa correttamente il cognome? é una conseguenza del casting vero?

Grazie

Risposte
vict85
I problemi sono 3:
1) struct anagrafica contiene due char, quindi non due stringhe o due puntatori a char.
2) non è così che si copia una stringa in C, va a ripassarti questa parte.
3) per stampare stringhe con printf non usi %c.

Nota che, risolto il problema 1, potresti inizializzare paziente in un modo veloce usando
struct agenda paziente = {{"Topo", "Gigio"}, {"Remo", "Labarca"}};

frab1
che sciocchezza...ho dimenticato l'asterisco nella definizione dei campi di anagrafica....
per l'inizializzazione ho scelto quest'altra modalita' prevalentemente a scopo didattico, grazie per la disponibilità vict! :-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.