Как будет выделяться память для объединения, которое содержит указатель внутри - PullRequest
2 голосов
/ 06 мая 2011
union
{
  unsigned char* pUc;
  unsigned long* pUl;
  unsigned short* pUs;
} up;

Как будет выделяться память для up (объединения)

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

Все указатели на целочисленные типы имеют одинаковый размер, поэтому объединение займет достаточно памяти, чтобы содержать один указатель.Насколько большой это зависит от вашей платформы.

0 голосов
/ 06 мая 2011

Гарантированный способ узнать, сколько байтов нужно up объекту, - это использовать sizeof up: помните, что в объекте могут быть байты заполнения.

Если вы хотите узнать, сколько битов, используйте CHAR_BIT * sizeof up: помните, что в объекте могут быть биты заполнения.

...