Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Ошибка при CArray::Add


Автор: ShurikA 9.8.2006, 20:28
Есть вот такой код:
Код

CArray<CLine,CLine> lines;
.
.
.
currDrawingShapeIndex = lines.Add(CLine(mainSetup))


выскакивает ошибка:
Код

HEAP[FibIm.exe]: Invalid Address specified to RtlValidateHeap( 00D60000, 00D6A538 )
Windows has triggered a breakpoint in FibIm.exe.

This may be due to a corruption of the heap, and indicates a bug in FibIm.exe or any of the DLLs it has loaded.

The output window may have more diagnostic information


отследил весь путь - ошибка непосредственно при возвращении currDrawingShapeIndex.

что это может быть?

Автор: Любитель 9.8.2006, 23:44
Что такое (у тебя) CLine? Его конструктор (напиши).
Прочитай инфу в оутпут-окошке студии при запуске деьагером.

Автор: Earnest 10.8.2006, 06:06
Попробуй вторым аргументом шаблона поставить ссылку CLine&

Автор: ShurikA 10.8.2006, 08:42
Цитата(Earnest @  10.8.2006,  05:06 Найти цитируемый пост)
Попробуй вторым аргументом шаблона поставить ссылку CLine& 

У меня есть ещё одно место в проге где я таким же образом заполняю массив своими классами, и всё ок...

Добавлено @ 08:55 
кроме того таким образом не нужно думать о том как убивать эти обьекты...

Автор: ShurikA 10.8.2006, 10:32
Страно, сделал так:
Код

CArray<CLine,CLine&> lines;


теперь он ругается на добавлении второго обьекта... smile 

Автор: Rapalex 10.8.2006, 10:32
ShurikA, вообще второй параметр у иакого шаблона можно не указыватьон сам на ссылку делается.
Цитата(ShurikA @  10.8.2006,  08:42 Найти цитируемый пост)
кроме того таким образом не нужно думать о том как убивать эти обьекты...

так и с ссылкой тебе об этом думать не надо, при использовании ссылки прога будет работать быстрее.

а в таком случае посмотри на конструктор копирования может там чтото не то.

Автор: ShurikA 10.8.2006, 10:39
Цитата(Rapalex @  10.8.2006,  09:32 Найти цитируемый пост)
конструктор копирования

что ты имеешь в виду?

Автор: ShurikA 10.8.2006, 14:32
Rapalex, 
Спасибо, решилось.
Проблемма была как раз в дистракторе обьектов...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)