sizeof(pNome) ti restituirà la dimensione del tipo di dato pNome. Dato che pNome è un puntatore a 32 bit, a prescindere dalla lunghezza della stringa puntata, avrai sempre 4 come risultato. Copiando un nome di più di 4 caratteri avrai un buffer overflow (con risultati imprevedibili, nella migliore delle ipotesi, un crash).Originariamente inviato da Arpyone
ho modificato il metodo in questo modo
...
Per ottenere la lunghezza della stringa, devi usare la funzione strlen ... sarà quindi
codice:void Nominativo::setNome(char* pNome) { nome = new char[strlen(pNome)+1]; strcpy(nome, pNome); }