C++ 按已知地址调用函数?C++;

C++ 按已知地址调用函数?C++;,c++,C++,我有一个已知内存地址的函数(例如:0x11111111)。该函数返回一个int,并将uint32\u t指针作为其唯一参数 如何调用C++的这个函数?我看过一些通过地址调用函数的例子,但我似乎找不到一个以指针作为参数的例子 编辑:我看到了。没有说明如何调用将指针作为参数的函数如果您确定那里有函数,可以通过将地址强制转换为适当类型的函数指针,然后调用它来调用它。下面是执行此操作的C代码: typedef int (*FunctionType)(uint32_t*); FunctionType f

我有一个已知内存地址的函数(例如:0x11111111)。该函数返回一个int,并将uint32\u t指针作为其唯一参数

如何调用C++的这个函数?我看过一些通过地址调用函数的例子,但我似乎找不到一个以指针作为参数的例子


编辑:我看到了。没有说明如何调用将指针作为参数的函数

如果您确定那里有函数,可以通过将地址强制转换为适当类型的函数指针,然后调用它来调用它。下面是执行此操作的C代码:

typedef int (*FunctionType)(uint32_t*);

FunctionType function = (FunctionType)0x11111111;
function(arg);
可以很容易地修改它,以支持任意数量的函数参数和您想要的任何返回类型。只需调整FunctionType typedef的参数类型列表

或者,在一行中(一口气):


使用函数指针,我看到了。没有说明如何调用将指针作为参数的函数,我看不出这有什么区别。请随意编辑以解释它是如何工作的。不建议这样做。简单地说,如果你是负责在低级(选择地址…)中分配内存的人,那么这是一个好主意,就像在汇编等低级语言中一样。为什么它将指针作为参数会有任何区别?您以相同的方式调用它,但不是不使用参数,而是将指针作为参数传递给它。
(((int (*)(uint32_t *)) 0x11111111)(arg);