Originariamente inviato da Lucked
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?
Rimane in memoria in una parte della memoria chiamata (mi pare) tabella delle stringhe...
TUTTE le costanti rimangono in memoria... E se provi a modificarle cambierà il valore di tutti i puntatori che puntano alla stesa stringa.

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
Perchè cerchi di inserire un aray in un array, e ciò non va bene:
non va bene nemmeno fare:

int a[3], b[3] = { 1, 2, 3 };
a = b;

per lo stesso motivo: non puoi assegnare a un array il valore di un altro array.
Devi assegnarlo elemento per elemento, e la funzione strcpy fa proprio questo