C++ 带指针的并集
我有一个union,有两个指向不同数据类型的指针:C++ 带指针的并集,c++,unions,C++,Unions,我有一个union,有两个指向不同数据类型的指针: union{ UCHAR *_rawData; RGB *_RGBData; }; typedef struct RGB { UCHAR red; UCHAR green; UCHAR blue; }RGB; 稍后在代码中 _rawData = new UHCAR[126]; _RGBData = new _RGBData[42]; //3 times lower than rawData 所以我的问
union{
UCHAR *_rawData;
RGB *_RGBData;
};
typedef struct RGB
{
UCHAR red;
UCHAR green;
UCHAR blue;
}RGB;
稍后在代码中
_rawData = new UHCAR[126];
_RGBData = new _RGBData[42]; //3 times lower than rawData
所以我的问题是。。这样组成工会安全吗?理论上,这两个变量都使用126字节,因此应该可以,但我不确定,因此我在这里询问了联合本身是有效的,但在任何时候只有一个联合成员可以处于活动状态:
- 因此,在代码后面进行两次初始化是完全错误的:第一个指针将丢失李>
- 您必须找到一种方法来确定哪个成员处于活动状态李>