Re[3]: new + delete = Access Violation? Как быть?
От: Андрей Тарасевич Беларусь  
Дата: 18.05.03 20:11
Оценка: 54 (3) +3
Здравствуйте, FlashBack, Вы писали:


A>>Нельзя освобождать память выделенную new[] при помощи delete. Нужно использовать delete[].


A>>char * a = new char[10]; delete [] a;


FB>Спасиба огромное. Теперь всё ок!


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