Salve ragazzi, mi serve ancora il vostro aiuto...
L'esercizio mi chiede di costruire una lista di nomi, per evitare di allocare staticamente un array sovradimensionato di char ho provato ad utilizzare l'operatore new per allocare memoria dinamicamente, questo è quanto per ora ho fatto:
struct nome{
char * name;
nome * succ;
};
--------------------
class lista_nomi{
public:
nome * ptr_testa;
void inserisci();
--------------------
void lista_nomi::inserisci(){
nome * l;
l=new nome;
l->name=new char;
cout<<"Inserisci il nome:\t";
cin>>l->name;
l->succ=ptr_testa;
ptr_testa=l;
}
______________________
Qualche dubbio sul corretto uso dell'operatore new sinceramente ancora ce l'ho....comunque il programma sembra funzionare tranne se inserisco un nome contenente 8 caratteri o più....sapete dirmi come mai???
Al di là del problema secondo voi è un programma che sta "in piedi"? cioè ci sono grandi errori concettuali? si può fare in altro modo?(a parte l'uso di un array di stringhe a dimensione fissa).
ultima cosa(meno importante per ora...), con new char come avviene "la decisione" di quanta memoria bisogna allocare?
(ho provato ad usare lo stesso codice in un'altro programma a parte costituito solo dal main, senza liste e non mi da problemi...)