如何通过它在 C 中的地址调用函数



我需要调用函数(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

最新更新