Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2018, 14:45   #1
polin11
Форумчанин
 
Регистрация: 07.06.2015
Сообщений: 164
По умолчанию ответить на простой тест

Помогите ответить на вопрос, не могу понять суть вопроса (правильно ли понимаю, что будет если выделить память в куче и затем не удалить delete, по мне ответ 1).
Вопрос
using delete on a pointer returned by new[] or delete[] on a pointer returned by new
используя delete по указателю, возвращенному new [] или delete [] указателем, возвращаемым new
Ответы:
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
может выполняться только с классами, которые по умолчанию уничтожают
polin11 вне форума Ответить с цитированием
Старый 18.03.2018, 20:25   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от polin11 Посмотреть сообщение
правильно ли понимаю
Не правильно.

Суть вопроса вот в чём: в плюсах указатель на одиночный объект фактически ничем не отличается от указателя на массив объектов. Первый возвращается оператором new при создании одиночного объекта, и этот объект должен быть удалён затем оператором delete. Второй же возвращается оператором new[] при создании массива объектов, и этот массив должен быть удалён затем оператором delete[]. Но тип указателей в обоих случаев одинаковый. Вот автор вопроса и спрашивает, что будет, если перепутать и удалить неправильным способом.

Насколько я понимаю стандарт, таки да, UB
Black Fregat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здраствуйте ребята! Помогите пожалуйста ответить на этот тест. Вопрос ответ. Зарнее вам спасибо и очень буду благодарна. Saniya_000 Помощь студентам 1 01.12.2016 23:15
Помогите ответить на тест по аудит качества alhon Помощь студентам 0 17.01.2015 01:31
кто может помочь решить тест ( ответить на вопросы) за 50 руб tower38 Помощь студентам 0 18.02.2012 21:32
Простой тест на С++ _сергей_белко_ C++ Builder 3 28.02.2011 18:52
Простой тест Kivik Мультимедиа в Delphi 2 20.01.2009 15:44