我想知道以下结构是否可行:
typedef std::bitset<4> BIT4;
BIT4* x=new BIT4[3];
BIT4* y=new BIT4[5];
我担心的是:
(1)BIT4的数组是一个合法的结构吗?
(2)如果是,指针将如何处理这些大小为3和5的数组?这些数组的最后一个元素似乎需要1/2字节,另一半只是丢失了,我们从一个新字节开始下一个数组或者它是如何工作的?
感谢您的帮助!
答案 0 :(得分:0)
据我所知,你要做的是
在名为x
的数组中使用12位代表3个元素在名为y
的数组中为5个元素使用20位这是错误的,因为你最终会使用:
如果你想达到你想要的,你需要这样做:
std::bitset<4*3> x; // this will occupy 12 + 4 Padding Bits = 2 bytes
std::bitset<4*5> y; // this will occupy 20 + 4 Padding Bits = 3 bytes
,如果你愿意,你当然可以动态分配它。