Я вполне уверен, что ответом будет «нет, не будь глупым», но, как говорится, глупых вопросов нет (их задают только глупые люди).
Я хочу вычислить смещение массива. У меня есть void *
ручка к нему и sizeof(element)
. У меня нет указателя x*
(где x
- это тип элемента).
Есть ли способ, как я могу привести указатель void *
к одному из заданного размера, чтобы я мог делать арифметику указателей на основе этого размера? В данный момент я преобразую в char *
(при условии, что char
равен 1 байту *), а затем умножаю значение sizeof на смещение. Если бы я мог как-то привести указатель, то я мог бы просто использовать синтаксис массива, который был бы чище.
Как я уже сказал, я на 99% уверен, что это невозможно, и я в основном прошу о представлении типов на уровне языка, которого нет в C. Но стоит спросить.
* И я бы предпочел не потому, что это не всегда так.