| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Непонятное исключение в dbgheap.c |
| Автор: shedon 17.3.2004, 20:32 | ||||||
у меня есть функция которая выглядит так
file является объектом CStdioFile. всё функция проходит нормально, всё читается, всё записывается, но сразу после выхода из функции возникает эксцепшон
указывает на файл dbgheap.c
да, забыл компилю под VC7.0 |
| Автор: Гость_сергей 18.3.2004, 15:37 |
| выходишь где то за регион |
| Автор: shedon 18.3.2004, 15:46 |
| за какой регион ? в sCode слишком большое значение ? |
| Автор: sergejzr 18.3.2004, 16:08 |
| А что дибагер говорит? Такого рода ошибки происходят, когда деструктируются обьекты, заложенные в функции. посмотри fFile, sCode возможно я не прав |
| Автор: srd 18.3.2004, 16:13 | ||
Проблема в неправильном использовании объекта класса CString. Во первых, ты копируешь что-то в строку, не выделив перед этим память. Длину буфера можно указать в параметре функции-члена GetBuffer. Во вторых, после использования полученного буфера необходимо вызвать функцию-член ReleaseBuffer() до любого другого использования строки. Т.е.
Поэтому и получается, что ломается куча. |
| Автор: shedon 18.3.2004, 16:15 |
| а что он должен говорить ? функция проходит нормально, а после выхода эксцепшон, типа инструкция такая-то обратилась к такой-то памяти Добавлено @ 16:18 srd, посмотрю, спасибо |
| Автор: shedon 19.3.2004, 08:18 |
| srd, спасибо, всё зароботало |