Цитата(elusive @ Apr 12 2011, 20:18)

rezident, aaarrr, sergeeff, спасибо!! теперь запомню про инициализацию указателя.
все работает. я в общем сделал так:
char* temp_expression;
temp_expression = new char(strlen(expression));
...
*(temp_expression+i) = *expression;
i соответственно наращиваю.
p.s. Idle, у вас совсем не "говорящее" имя =)
upd хм странно, работает только если символов <=16...
upd лол какой-то...
если добавить не играющее большой роли printf
str = new char(strlen(expression));
printf("%d\n", strlen(expression));
работает с любой длиной %)))))
А это все от того, что полезно самому книжки читать, а не только на советы надеятся.
Что делает
Код
char *pp = new char(80);
выделяет 1 байт в куче и инициирует его значением 80.
Вы ведь совсем другого хотели, не правда ли? Вам надо выделить область памяти длиной 80 байт. Тогда это так:
Код
char *pp = new char[80];
Потому и не работает.