Арифметика с пустыми указателями в C ++ - PullRequest
4 голосов
/ 20 февраля 2011

Мне нужно получить доступ к объекту в буфере, на который указывает указатель void.Объект расположен с определенным смещением, но поскольку арифметика на пустом указателе запрещена, как я могу получить доступ к объекту?

1 Ответ

11 голосов
/ 20 февраля 2011

Вы можете привести указатель к char* (+1 для такого указателя смещается на один байт) или к любому другому типу указателя, если это лучше соответствует вашим потребностям.

Однако этот подход чрезвычайно подвержен ошибкам! Ты лучше проверь свой дизайн, что-то здесь пахнет! void* в 99% случаев не нужны в C ++, конструкции, в которых они используются, обычно больше "C", чем "C ++". Помните, что шаблоны и наследование должны быть способом сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...