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

七月的狮子 2014-02-07 06:59:43
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 是指针类型,为什么还要使用&取地址?
...全文
147 点赞 收藏 1
写回复
1 条回复
baichi4141 2014年02月07日
你要修改什么,你就使用一个指向什么的指针 如果你要修改一个指针,你就要使用一个指向该指针的指针
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告