C++问题,走过路过不要错过,大哥大姐来看看

typedef unsigned char BYTE;
BYTE* tmp = new BYTE[8];
memset(tmp, 0, buff_size);
ems_client_info* p_obj1 = (ems_client_info*)tmp;

其中 ems_client_info是一个类,有构造函数和析构函数也有一些成员函数

问题:tmp是定义了一个大小可以存放8个BYTE类型的指针
p_obj1这个指针指向的是什么?(ems_client_info*)tmp 这个指针强转是啥意思?还有p_obj1所指向的是什么,p_obj1所指向的空间里能放些什么?

哥哥姐姐 们 谢谢啦

3个回答

这个应该是类利用构造函数做的强制类型转换,你把构造函数贴上来看看

class ems_client_info
{
public:
ems_client_info()
{
_type = 0;
_length = 0;
message_body[0] = 0;
};

~ems_client_info(){};
    构造函数里就是初始化了,还是不明白p_obj1所指向的空间里能放些什么?为什么要强转

_p_obj1指向的还是申请的内存,对于指针的操作请记住,类型决定行为。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐