Non vorrei dire ma sto code mi pare *veramente tanto sballato* tanto per cominciare devi allocare la memoria prima di usare strcpy e non dopo. Come fai tu ottieni solo un segmentation fault. Poi, il primo valore di strcpy() non è l'indirizzo di partenza, ma quello di destinazione. il tuo code dovrebbe quindi essere:
l = strlen(n) + 1; // zero finale
k = strlen(c) + 1;
nome = new char[l];
cognome = new char[k];
strcpy(nome, n);
strcpy(cognome, c);
/* non deallocare la memoria sennò nome
e cognome potrebbero essere sovrascritti */
questo è solo un accorgimento che devi fare, per deallocare memoria usa un distruttore, cosi:
studente::~studente()
{
delete[] nome;
delete[] cognome;
}
bye

Rispondi quotando