Ciao ragazzi, ho una struttura definita così: ( una lista in teoria)

typedef struct {

float importo;
char descrizione[30];
struct transazione *next;

}transazione;

poi nel main ho dichiarato un nodo della lista così:

transazione *p_testa = (transazione *)malloc(sizeof(transazione));
poi assegno un valore all'importo e alla descrizione
p_testa->importo 43.12;

per assegnare da tastiera la descrizione faccio così

gets(p_testa->descrizione)

ma perché se faccio così:

p_testa->descrizione = "ciao";

o così

p_testa->descrizione = 'ciao';

è sbagliato? come faccio ad assegnare nel codice una stringa? devo usare per forza la strcpy?

grazie in anticipo!