Re[3]: Debug или Release? Вот в чём вопрос...
От: Алекс Россия http://wise-orm.com
Дата: 11.03.02 09:35
Оценка:
Здравствуйте Fluffy, Вы писали:

F>Здравствуйте Алекс, Вы писали:


А>>Здравствуйте Fluffy, Вы писали:


F>>>У меня есть кнопка, на ней я пишу


F>>>{

F>>>CMyData data = new CMyData(m_notch); // класс данных

F>>>...

F>>>бла_бла_бла...
F>>>...

F>>>delete data;

F>>>}

F>>>В классе CMyData есть динамические массивы, которые создаются и удаляются в конструкторе и деструкторе. Вроде всё конкретно???

F>>>НИФИГА!!!

F>>>При выполнении инструкции delete data; выскакивает фишка Debug assertion failed!!! Причём выскакивает только в версии Debug, в релизе всё нормально!!!


F>>>Весь фокус в том, что щас я переписал структуру программы. Раньше была идентичная ошибка, но в версии Release, соответственно в дебаге всё прокатывало.


F>>>В чём дело, люди добрые??? Я понимаю, что ситуация очень абстрактная, но хоть намёки на проблему...

F>>>Заранее благодарен!!!

А>>нужен код деструктора


F>// Вот они, родёмые...

F>CData::CData(int m) : n(m)
F>{
F> m_SinData = new double[n];
F> m_DelData = new double[n];

F> m_masz = new int[n];

F> m_masj = new int[n];
F>}

F>CData::~CData()

F>{
F> delete[] m_masj;
F> delete[] m_masz;

F> delete[] m_SinData;

F> delete[] m_DelData;
F>}

Ты, скорее всего, уже удалил где-нибудь эти массивы, или не удалил, но записал в указатели другие значения.
Лучший выход из положения поставить точку останова на деструктор и под отладчиком все проверить!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.