| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > мусор при выделении памяти |
| Автор: howtoseek 8.12.2010, 10:54 | ||
вот простой код
Работает он не совсем так, как мне нужно. Проблема при выделении памяти. Strlen возвращает длину 34 символа, но при выделении буфера такого размера он оказывается больше на 14 байт. Ему в конец добавляется какой-то мусор. При отладке(после выполнения 11-ой строки кода) содержимое памяти, на которую указывает target такое: "ННННННННННННННННННННННННННННННННННээээ««««««««ою". После выполнения 13-ой строки кода такое: "Stroka Stroka Stroka Stroka Strokaээээ««««««««ою". Использование new и delete дает тот же эффект. Вопрос: откуда тут берется вот это "ээээ««««««««ою" и в чем мой косяк? |
| Автор: asmdzen 8.12.2010, 11:33 | ||
это не ваша память, strlen( source ) возвращает длину строки в символах без конечного нуля, при копировании как и при выделении памяти вы передаете неправильный параметр, следует сначала прибавить единицу к "count", примерно так:
|
| Автор: howtoseek 9.12.2010, 08:31 |
| Спасибо. Помогло. Я и забыл про нольтерминатор совсем. |
| Автор: bsa 9.12.2010, 17:49 | ||
|