Sed*_*ien 1 c++ pointers initialization
我知道具有已知签名的特定函数位于已知地址.如何在C++中初始化函数指针?
我尝试了以下(及其许多变化)无济于事:
int (*FunctionName)(int arg1, long arg2, char *arg3) = (int (*FunctionName)(int arg1, long arg2, char *arg3))0xCAKE;
Run Code Online (Sandbox Code Playgroud)
我感觉右边的表达式会导致麻烦,因为代码会在初始化为0x0/时编译NULL.有什么指针吗?(双关语).
除了CAKE不是正确的十六进制值这一事实,因为K不是有效的十六进制字符,加上有关不同指针类型的任何问题,您的主要错误是FunctionName是一个不是类型的变量.
这就像在做
px = (px)0xBADFACE;
其中px是常规指针
如果你删除右边的FunctionName,剩下的就可以了,但是更容易成为一个typedef.
typedef int( *FuncType)(int arg1, long arg2, char * arg3 );
FuncType FunctionName = (FuncType)(0xCAFE);
Run Code Online (Sandbox Code Playgroud)