Siii..ho trovato la strada che mi piace!
dichiaro nella struct un puntatore nome e poi faccio:

a1.nome = "Luca";

ho delle domande però:

1)ma se poi faccio:
a1.nome = "Andrea";

"Luca" rimarrà da qualche parte nella memoria dell'heap o si cancella?
---------------------------------------------------------------
2)è più o meno conosciuto il motivo per cui se faccio:

char nome[15];
nome = "Luca";

è errore?

per sopravvivere a ciò mi pare si usi, come mi avete detto la funzione strcpy