// inversione stringa da input: // soluzione tramite puntatori e // allocazione dinamica della memoria #include #include using namespace std; int main() { struct elem { char info; elem* next; }; elem* lista = NULL; char c; cout << "Inserisci la sequenza di caratteri \n" << "da rovesciare (. per terminare) \n\n" ; do { // ciclo di lettura dei caratteri c = cin.get(); elem* current = new elem; if ( current == NULL) { cout << "Memoria dinamica non disponibile!!"; return 1; // il main restituisce un valore di errore al S.O. } current->info = c; current->next = lista; lista = current; } while ( c != '.'); elem* tmp = lista; // ciclo di scrittura while ( lista != NULL) { cout << lista->info; lista = lista->next; delete tmp; // dealloco gli elementi della lista perche' non piu' // usati nel seguito del programma ... tmp = lista; } cout << endl << endl; //system("PAUSE"); istruzione per windows return 0; }