Здравствуйте, Artour Bakiev, Вы писали:
AB>Здравствуйте, FlashBack, Вы писали:
FB>>Здравствуйте, Андрей Тарасевич, Вы писали:
АТ>>>А теперь ради эксперимента попробуй в финальном коде заменить 'delete[]' назад на 'delete'. Если программа снова начнет падать, что мы получим очень ценный пример, наглядно демонстрирующий необходимость использования именно 'delete[]' для удаления массивов с элементами типа 'char'. До сих пор такого примера найти не удавалось.
FB>>Пробовал.С "delete" без "[]" сразу виснет!
AB>Код, пожалуйста, на бис. Позволь нам убедится, что дело в действительн в [].
Вот кривой код:
void MyFunc(void)
{
char *buf;
buf=new char[10];
printf(buff,"Test");
delete buf;
buf=new char[15];
printf(buff,"Test");
delete buf; /// Вот здесь выходит Access Violation ???
}
Вот рабочий код:
void MyFunc(void)
{
char *buf;
buf=new char[10];
printf(buff,"Test");
delete [10] buf;
buf=new char[15];
printf(buff,"Test");
delete [10]buf; /// Вот здесь Access Violation нету!
}