стандарту С++ это будет валидное поведение?
Я не знаю способа этого доиться без UB.
Та я просто тест сегодня писал, где было такое обращение- я написал, что там UB. Вот и хочу пруфы найти в стандарте где-то, что это UB.
Чтобы не было UB нужно как-то скастить к одномерному массиву размера N*M. Никто такого способа не предложил. А (*a)[N + 1] - это выход за границы в котором исключений для многомерных массивов не предусмотрено.
мне нужно доказать, что это UB по стандарту - ищу ссылки.
вроде как если есть несколько подряд идущих массивов, то обращаться к следующему из предыдущего не UB
Ну вот он и приведет ссылки на стандарт.
http://eel.is/c++draft/expr.sub#1 http://eel.is/c++draft/expr.add#4.3 http://eel.is/c++draft/dcl.array#6
Скастить проблем нет, есть reinterpret_cast.
Да конечно. Только пользоваться результатом нельзя.
Обсуждают сегодня