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;
}