Ответы с форумов MSDN

Арифметика указателей типа void в C++

Date: 13.12.2017 8:03:14

"По всем правилам, *v должен увеличиться на s * soe."

Укажите по какому именно правилу, иначе тема не имеет смысла. В VS 2012 например, код вообще не компилируется. Что выглядит вполне естественно: тип void не имеет определенного размера, и арифметика указателей для него применима.

Message 593

Date: 13.12.2017 9:13:02

Ни в режиме С, ни в режиме С++ не компилируется.

Ошибка 1 error C2036: void *: неизвестный размер

Я про ваш первый фрагмент, а не тот который на картинке, если что (во втором вообще нет сложения void*, поэтому не понятно, в чем проблема).

"Найти точное описание для арифметики с void* я не смог"

А где искали то? В стандарте ее нет, а в расширениях GCC она определяется как арифметика для char*. (https://gcc.gnu.org/onlinedocs/gcc-5.5.0/gcc/Pointer-Arith.html)


Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub