Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / ответить на простой тест / 7 сообщений из 7, страница 1 из 1
18.03.2018, 14:46
    #39616449
polin11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответить на простой тест
Помогите ответить на вопрос, не могу понять суть вопроса (правильно ли понимаю, что будет если выделить память в куче и затем не удалить delete, по мне ответ 1).

Вопрос
Код: plaintext
1.
using delete on a pointer returned by new[] or delete[] on a pointer returned by new
используя delete по указателю, возвращенному new [] или delete [] указателем, возвращаемым new


Ответы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
1) is undefined behavior
неопределенное поведение
2) will always fail at runtime
всегда будет работать во время выполнения
3) will always work but is inefficient
всегда будет работать, но неэффективно
4) will be flagged as compile-time error
будет помечен как ошибка времени компиляции
5) can only be done with classes which default destruction
может выполняться только с классами, которые по умолчанию уничтожают
...
Рейтинг: 0 / 0
18.03.2018, 17:00
    #39616503
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответить на простой тест
polin11не могу понять суть вопроса
Оператор new создает объект (единичный экземпляр класса), delete удаляет объект.
Оператор new[] создает массив объектов, delete[] удаляет массив

Суть вопроса: что будет если массив объектов удалить оператором для удаления объекта и наоборот?
...
Рейтинг: 0 / 0
18.03.2018, 17:47
    #39616508
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответить на простой тест
Anatoly Moskovskyчто будет если массив объектов удалить оператором для удаления объекта и наоборот?

Ну, "наоборот"-то это не вопрос, поскольку любой одиночный объект неотличим от массива из
одного элемента.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.03.2018, 19:02
    #39616525
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответить на простой тест
Dimitry SibiryakovНу, "наоборот"-то это не вопрос, поскольку любой одиночный объект неотличим от массива из
одного элемента.
Отнюдь ))
Массивы например могут выделяться в отдельной куче с другим форматом структур хранения памяти.
И тогда ничего хорошего ...

Ну и в исходном вопросе есть про оба варианта.
...
Рейтинг: 0 / 0
18.03.2018, 19:05
    #39616526
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответить на простой тест
Да, и отвечая на сам вопрос - в обоих случаях UB
...
Рейтинг: 0 / 0
18.03.2018, 21:09
    #39616546
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответить на простой тест
polin112) will always fail at runtime
всегда будет работать во время выполнения

Гугл переводит неправильно (на русский):
"всегда будет работать во время выполнения"...
Позор.

А на украинский переводит правильно:
"завжди буде невдач під час виконання"
Хотя и коряво...
...
Рейтинг: 0 / 0
22.03.2018, 11:51
    #39618787
ответить на простой тест
Dimitry SibiryakovAnatoly Moskovskyчто будет если массив объектов удалить оператором для удаления объекта и наоборот?

Ну, "наоборот"-то это не вопрос, поскольку любой одиночный объект неотличим от массива из
одного элемента.
Одиночный объект можно рассматривать как принадлежащий массиву из одного элемента для целей адресной арифметики http://eel.is/c draft/expr.add#footnote-86

В остальном отличим
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / ответить на простой тест / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]