memcpy() 中的用typedef定义的指针还是要使用&取地址?

七月的狮子 七月的狮子 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
class Addtest
{
typedef void (Addtest:: *funThreadFunc)(); //后面的我只可以看成是对类的声明 , 类方法指针,类其中的一个方法
typedef void (*PFunThread)(LPVOID); //声明线程的指针
private:
HANDLE hThread;
DWORD ThreadID;
public:
Addtest()
{
funThreadFunc ThreadFunc=&Addtest::Execture; //在目前需要带上& 和类的名称
PFunThread PThread=NULL;
memcpy(&PThread,&ThreadFunc,sizeof(ThreadFunc)); //结果是无法识别最终的类型,所以需要加上&,还是因为指针是变量的关系
hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)PThread,(void *)this,0,&ThreadID);
}
void Execture()
{
for(int i=0;i<1000;i++)
{
cout<<"德莱文"<<endl;
Sleep(100);
}
}
void terminated()
{
TerminateThread(hThread,ThreadID);
cout<<"线程已经释放"<<endl;
}
};


问题 在memcpy()中PThread,ThreadFunc 是指针类型,为什么还要使用&取地址?
...全文
评论 1
收藏 已收藏
分享
返回顶部
七月的狮子
C++ 语言 65,214 成员 250,514 内容