K>чем эт будет отличаться от K>void* pOffset = (void*)pmem + dwOffset; K>?
Тем, что прибавить что-то можно только к указателю, у которого размер данных изветстен. Когда ты прибавляешь целое к указателю, он сдвигается в памяти на размер того объекта, на который указыват. Указатель на void попросить сдвинуться нельзя, т.к. нет размера его указываемого объекта, и сдвиг не может быть осуществлен.
В случае, когда pmem приведен к char*, указываемый объект предполагается имеющим размер sizeof(char), и тогда сдвиг на dwOffset передвинет указатель на dwOffset*sizeof(char) байт. А потом уже полученный указатель преобразовывается в родовой (указатель на void).
Здравствуйте Kaa, Вы писали:
Kaa>Здравствуйте Kreont, Вы писали:
Kaa>Я облажался, скобки забыл, и мне уже об этом указали. K>>>>>Как получить указатель типа void* на байт смещённый от pmem на dwOffset ?? Kaa>>>
K>>чем эт будет отличаться от K>>void* pOffset = (void*)pmem + dwOffset; K>>? Kaa>Тем, что прибавить что-то можно только к указателю, у которого размер данных изветстен. Когда ты прибавляешь целое к указателю, он сдвигается в памяти на размер того объекта, на который указыват. Указатель на void попросить сдвинуться нельзя, т.к. нет размера его указываемого объекта, и сдвиг не может быть осуществлен.
Kaa>В случае, когда pmem приведен к char*, указываемый объект предполагается имеющим размер sizeof(char), и тогда сдвиг на dwOffset передвинет указатель на dwOffset*sizeof(char) байт. А потом уже полученный указатель преобразовывается в родовой (указатель на void).
Kaa>С уважением
Получается что void* уже ни во что низзя преобразовать.
а эта радость
Здравствуйте Alex Fedotov, Вы писали:
AF>Здравствуйте Kaa, Вы писали:
K>>>>Как получить указатель типа void* на байт смещённый от pmem на dwOffset ?? Kaa>>
Необходимости в (void*) все равно нет. Что в С, что в С++, приведение указателя на объект к типу 'void*' — стандартная конверсия (если cv-квалификация соответствует)