Пытаемся выйти за пределы массива и получить segfault:
int *p = new int[3];
p[100] = 100;
Компилируем g++. Ничего не происходит. А все потому, что тут undefined behaviour, компилятор имеет право разбираться с проблемой как хочет. Вот тут об этом подробно (Accessing an array out of bounds gives no error, why?).
Делим на 0:
int x = 1/0;
Опять ничего! Программа компилируется, запускается.
Попробуем создать массив из минус одного элемента:
int *p = new int[-1];
Компилятор проглатывает без проблем. Но при запуске получаем исключение bad_alloc. Ура! Программа грохнулась!
четверг, 11 апреля 2019 г.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий