Как найти смещение байта объекта в C ++? - PullRequest
0 голосов
/ 11 мая 2010

Допустим, я создаю 5 объектов одного класса. Будет ли смещение байта первого объекта 0? Как узнать смещение в байтах других объектов?

Ответы [ 2 ]

0 голосов
/ 11 мая 2010

Независимо от того, что вы подразумеваете под offset, вы всегда можете проверить адрес объектов самостоятельно:

printf("%p %p", (void *) &thingOne, (void *) &thingTwo);
0 голосов
/ 11 мая 2010

«Смещение байта» от что ? Вы создаете массив из 5 таких объектов? В этом случае, конечно, смещение байта первого (от начала массива) равно 0; что касается других объектов,

static_cast<char*>(&thearray[i]) - static_cast<char*>(&thearray[0])

- это байтовое смещение i th.

...