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