Re[5]: new + delete = Access Violation? Как быть?
От: Андрей Тарасевич Беларусь  
Дата: 19.05.03 17:10
Оценка: 24 (1) +2
Здравствуйте, FlashBack, Вы писали:

ААТ>>Ответ alextro совершенно правилен. Объекты типа 'массив' должны освобождаться именно при помощи 'delete[]', а не 'delete'. Но одной из особенностей MSVC++ 6 является то, что для массивов 'char' ошибочное применение 'delete' вместо 'delete[]' не приводит к каким-либо проблемам, не говоря уже об access violation. Так что проблема в твоем случае заключалась не в этом. Советую еще раз внимательнее просмотреть и протестировать код. Если все, что ты исправил, это замена 'delete' на 'delete[]', то этот access violation ты еще увидишь.


FB>Кокда появился Access Violation я просто закомментировал все delete и всё стало ок. А сейчас дописал с исправлением и всё работает, так что я думаю проблема была всё же в этом


А теперь ради эксперимента попробуй в финальном коде заменить 'delete[]' назад на 'delete'. Если программа снова начнет падать, что мы получим очень ценный пример, наглядно демонстрирующий необходимость использования именно 'delete[]' для удаления массивов с элементами типа 'char'. До сих пор такого примера найти не удавалось.
Best regards,
Андрей Тарасевич
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.