Вы выделяете место только для одного персонажа, но пытаетесь добавить в него много символов.
Это домашнее задание? если так, пожалуйста, пометьте его как таковой. Вам разрешено использовать STL?
Если это так, тогда используйте std :: vector вместо нового символа [1];
РЕДАКТИРОВАТЬ: сделать это без каких-либо неудобных битов или STL
const int MAX = 100;
char *p=new char[MAX];
for(i = 0 ; *(p+i) && i < MAX ; i++)
*(p+i) = getchar();
вероятно, некоторые по одному - оставлено как упражнение