| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Перераспределение памяти с помощью HeapReAlloc |
| Автор: Dogo 3.8.2007, 17:40 | ||
Направьте на путь истинный. Пытаюсь перераспредилить память при помощи HeapReAlloc().
строка - "testStr=(char*)HeapReAlloc(myHeap, HEAP_GENERATE_EXCEPTIONS, testStr, 20);" приводит к эксепшену. Укажите, пожалуйста на ошибку. |
| Автор: Lomir 3.8.2007, 17:57 | ||
Присваивания указателей а не строк. Нолжно быть strcpy(); П.С. Могу ошибаться, в системное программирование вопше случайно заглянул. |
| Автор: _hunter 3.8.2007, 17:58 |
| кто тебя так: строки учил копировать/присваивать? -- это ж полная ересь. ну а потом по левому адресу: что-то пытаешся перевыделить... |
| Автор: Dogo 3.8.2007, 20:05 |
| Спасибо за попытку помочь. На самом деле все оказалось проще. Дело в том, что при выделении нового блока памяти он заполнялся мусором, вследствие чего не было места для записи строки "abcdefghij". Забыл обнулить выделяемую память после включения флага "HEAP_ZERO_MEMORY" в вызове HeapReAlloc все заработало...))) |
| Автор: Dogo 3.8.2007, 20:25 |
| Ух я нагородил. Сегодня явно не мой день... Не внимательно я код скопировал из программы, конечно же _hunter прав... м да наверное сегодняшняя жара сказалась...((( Прошу прощения за то, что напрасно потревожил. |
| Автор: Earnest 3.8.2007, 20:26 |
Тем не менее, _hunter насчет этой строки прав: ты как минимум теряешь указатель на выделенный блок памяти и получаешь утечку. А насчет "все заработало" - это тебе только показалось... |