我需要调用函数(calloc),但是我必须通过存储在DWORD中的这个函数的内存地址来调用它。该函数有两个int参数。我认为Calloc应该返回指针。我试过这样的事情
//global var
DWORD addressOfFunction;
typedef void(*originalAddress)(int, int);
int main(){
originalAddress tmp = (void *)addressOfFunction;
tmp(x, y);
}
有人可以解释我,我犯了错误吗?我的解决方案不正确。
答案 0 :(得分:0)
您的typedef
错了。更好的是
typedef void* (*originalAddress)(int, int);
你的演员也是错的。 void*
是数据指针,而不是函数指针。使用强制转换为void* (*)(int, int)
,甚至更好地使用originalAddress
。