ovvio che non va bene dovevi fare new char[100] per esempio, ma non risolve il tuo problema.
Comunque devo aggiungere alcune cose al codice di cui sopra (i due file postati).
Prima di tutto esso è parte di HBPA un software open source del cui team di sviluppo faccio parte e che tra l'altro cerca volontari.
L'uso è facile, chi conosce java ha già di default un oggetto simile.
Ammetti di dover leggere una linea dall'input e di volerla ristampare in echo.
codice:#include "stringbuffer.h" #include <stdlib.h> #include <iostream.h> int main() { StringBuffer * sb; int c; char * stringa; try{ sb = new StringBuffer(100,100); //nuovo string buffer con capacità 100 e che si incrementa //automaticamente del 100% quando raggiunge il limite della sua //capacità } catch(void) { cerr << "Memoria insufficiente"; return 1; } while (cin.eof() == 0) { c = cin.get(); try { if(c != '\n') sb->Append((char)c); else break; } catch(void) { cerr << "memoria insufficiente"; return 1; } } //libera memoria non usata sb->TrimBuffer(); //si becca il buffer stringa = sb->GetBuffer(); //elimina l'oggetto (notare che il buffer resta valido) delete sb; cout << stringa; //libera il buffer free(stringa); return 0; }

Rispondi quotando