使用指针成员对结构体进行类型转换



我试图用指针成员将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"视频。

最新更新