结构体里包含一个联合体,问一下,怎么给这个结构体付初值呢?不知道怎么弄...
简单定义几个结构体:
typedef struct tagRCV_REPORT_STRUCTExV1
{
float m_fLastClose; float m_fOpen; float m_fHigh;
} RCV_REPORT_STRUCTExV1;
//////////////////////////////////////////////////////////////////////////////////
typedef struct tagRCV_REPORT_STRUCTExV2
{
float m_fLastClose;
float m_fOpen;
float m_fHigh;
float m_fLow;
} RCV_REPORT_STRUCTExV2;
////////////////////////////////////////////////////////////////////////
typedef struct tagRCV_REPORT_STRUCTExV3
{
float m_fLastClose;
float m_fOpen;
float m_fHigh;
float m_fLow;
float m_fNewPrice;
} RCV_REPORT_STRUCTExV3;
/////定义最后一个结构体,但这个结构体包含一个有以上三种结构体组成的联合体,这个联合体包含两个int数据和三个结构体指针。
typedef struct tagRCV_DATA
{
int m_wDataType;
int m_nPacketNum;
union
{
RCV_REPORT_STRUCTExV1 * m_pReportV1;
RCV_REPORT_STRUCTExV2 * m_pReportV2;
RCV_REPORT_STRUCTExV3* m_pReportV3;
};
} RCV_DATA;
我想给最后这个结构体初始化;请问怎么初始化啊..............请高手指点.....我是这样初始化的
RCV_DATA *data=new RCV_DATA;
data->m_wDataType=1;
data->m_nPacketNum=1;
data->m_pReportV1->m_fHigh=1;
data->m_pReportV1->m_fLastClose=2;
data->m_pReportV1->m_fOpen=3;
这样话,编译没错,但是运行报错,不知道是哪错了,请给一个正确的答案,谢谢