我试图用指针成员将struct
类型转换为(char *
)。请告诉我以下两种类型转换策略有什么不同struct
也被显示。
struct videoPacket{
uchar * videoData;
}video;
// and initializing 'video' to some value
策略1:
videoPacket * videoPointer = &video;
char * buffer = (char *)videoPointer;
策略2:
videoPacket * videoPointer = &video;
char * buffer = (char *)videoPointer->videoData;
既然struct
只有一个成员,buffer
会不会指向相同的内容?
编辑:如果我想把下面显示的结构类型转换为char *,我该怎么做?
struct struct1{
uchar * struct1data1;
char struct1data2;
}video;
策略1不正确。它返回一个指向存储所需数据地址的内存的指针。
策略2是"正确的"。它返回数据的地址你用什么方法做都没关系。这并不是说你的结构只有一个成员。这是事实,在你的结构中的第一个成员是uchar* videoData,所以"视频"one_answers"视频。