Создание структуры C ++, которая имеет макет памяти массиваC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Создание структуры C ++, которая имеет макет памяти массива

Сообщение Anonymous »

У меня есть набор структур, которые похожи на < /p>

Код: Выделить всё

struct A
{
int x;
int y;
};
struct B
{
int x;
int y;
int z;
};
struct Top
{
A a;
B b;
int* getPtr()  { return &a.x;  }
};
Цель состоит в том, чтобы иметь возможность получить доступ ко всем полям Top's A и B , используя указатель как-если бы это был указатель на первый элемент в массиве. Я могу гарантировать, что все нестатические члены данных этих классов будут int . Мне не нужно беспокоиться о случае, когда компилятор должен добавлять заполнение, потому что одно поле было вдвое больше (я больше беспокоюсь о том, чтобы убедиться, что компилятор не разрешается добавлять указанные накладки). < /P>
Из того, что я могу сказать, большинство компиляторов должны изложить структуры, чтобы позволить мне использовать результат GetTPTR, как укол в начале. Что я хотел бы знать, так это то, какие минимальные утверждения мне нужно сделать на A, B и Top, чтобы гарантировать, что память изложена таким образом. Я хочу избежать того, чтобы не падать из -за строгого псевдонима. Я не думаю, что строгое псевдонирование мешает здесь, но это всегда удивляет меня.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... f-an-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»