{
CMyData data = new CMyData(m_notch); // класс данных
...
бла_бла_бла...
...
delete data;
}
В классе CMyData есть динамические массивы, которые создаются и удаляются в конструкторе и деструкторе. Вроде всё конкретно???
НИФИГА!!!
При выполнении инструкции delete data; выскакивает фишка Debug assertion failed!!! Причём выскакивает только в версии Debug, в релизе всё нормально!!!
Весь фокус в том, что щас я переписал структуру программы. Раньше была идентичная ошибка, но в версии Release, соответственно в дебаге всё прокатывало.
В чём дело, люди добрые??? Я понимаю, что ситуация очень абстрактная, но хоть намёки на проблему...
Заранее благодарен!!! :super:
Здравствуйте 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>Заранее благодарен!!!
Здравствуйте Алекс, Вы писали:
А>Здравствуйте 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>>Заранее благодарен!!! :super:
А>нужен код деструктора
// Вот они, родёмые...
CData::CData(int m) : n(m)
{
m_SinData = new double[n];
m_DelData = new double[n];
Здравствуйте 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>Заранее благодарен!!!
Внимательно проверь не выходишь ли за границы массивов
А вообще пора б тебе твоё приложение поюзать Bound Checkerom
Здравствуйте 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>Заранее благодарен!!! :super:
1. При выполнении операции delete неплохо бы проверить объект на NULL.
Операции со времене в Debug и в Release происходят по разному —
не учитывается переход на летннее время.
Здравствуйте 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>}
Ты, скорее всего, уже удалил где-нибудь эти массивы, или не удалил, но записал в указатели другие значения.
Лучший выход из положения поставить точку останова на деструктор и под отладчиком все проверить!
Здравствуйте Андрей, Вы писали:
А>Здравствуйте Eow, Вы писали:
Eow>>1. При выполнении операции delete неплохо бы проверить объект на NULL.
А>Интересно, зачем?
У меня был аналогичный случай. Я убрал вызов delete myObject — помогло. Не знаю как и кто, но мой объект кто-то удалял до меня и memory leak не появился. Попробуй так.
- Вы знаете — жаль, просто по-человечески жаль Памелу Андерсон, которая никогда не сможет сыграть на баяне...
Здравствуйте Андрей, Вы писали:
А>Здравствуйте Eow, Вы писали:
Eow>>1. При выполнении операции delete неплохо бы проверить объект на NULL.
А>Интересно, зачем?
У меня такая ситуация лечилась "не удалением" объекта. Мой объект кто-то удалял до меня. Попробуй, если не появится memory leak — все Ок
- Вы знаете — жаль, просто по-человечески жаль Памелу Андерсон, которая никогда не сможет сыграть на баяне...