Re[10]: new + delete = Access Violation? Как быть?
От: folk Россия  
Дата: 20.05.03 23:39
Оценка:
Здравствуйте, folk, Вы писали:

[]

F>А вот

F>
F>delete [10]buf;
F>

F>насколько я понимаю — синтаксическая ошибка, которую VC почему-то не ловит. Надо писать delete[] buf;

F>Я попробовал — VC6 может принимать в квадратных скобках какой угодно тип, например этот код компилируется и правильно работает:

F>
F>struct A {} a;
F>char* p = new char[10];
F>delete[a] p;
F>


F>Короче VC6 игнорирует этот "аргумент" и вызывает

F>
F>void operator delete[](void* p);
F>

F>либо встроенный, либо переопределенный.

А Comeau заявил что это анахронизм:
"ComeauTest.c", line 5: error: delete array size expression used (anachronism)
  delete[5] p;
         ^

Видимо когда-то это было стандартом?
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.