Цитата(DpInRock @ Jun 26 2009, 18:16)

Я в Сях ничего не понимаю, но ради развлечения не увидел, в каком месте перед realloc выделяется начальный буфер.
Realloc насколько я понимаю, просто изменяет размер уже существующего блока...
avr-libc:Цитата
It is acceptable to pass ptr as NULL, in which case realloc() will behave identical to malloc().
Т. е., если память изначально не выделена, то realloc() выделяет её подобно malloc().
Только вот указатель realloc() я передаю ненулевой... может в этом ещё дело...
А так - это не просто безумие. Это даже для нормальных быстрых и замечательных процессорах с огромной памятью - безумие.
Цитата
В устройствах на всяких мелких процессорах без юзерскго интерфейса наличие ситуаций "нет памяти" просто безумна.
Или если так приспичило "экономить", то проверять наличие памяти надо ДО приема. И соответтсвенно выставлять всякое разное для остановки потока данных (rts, там, DTR и прочая...).
У меня функция ошибку возвращает, если памяти не хватило

Цитата(Сергей Борщ @ Jun 26 2009, 18:44)

Сколько вы выделили под кучу?
Затрудняюсь ответить...

Кроме вызова realloc(), free() я ничего с памятью не делал...
Нужно ещё как-то память под кучу выделить?