gpt4 book ai didi

c - 使用函数指针变量的地址将函数指针分配给函数

转载 作者:行者123 更新时间:2023-11-30 15:21:08 26 4
gpt4 key购买 nike

我有一个如下定义的函数指针:

typedef void (*FPT)(void);
FPT Fp;

指针变量“Fp”位于地址0x1234我的函数定义如下:

void myfunc (void)
{
return;
}

我无权访问符号名称“Fp”,但我知道它的地址(0x1234)。现在如何将 myfunc() 的地址分配给“Fp”?

最佳答案

这应该可以满足您的要求。

FPT *fpt_pointer = (FPT *)0x1234;

*fpt_pointer = myfunc;

但请注意,使用这样的硬编码地址是非常糟糕的做法。我不知道你是否真的打算这样做(不要!)或者你只是这样描述它以简化问题。下次运行程序时它很可能会中断(即使由于地址空间布局随机化而没有重新编译)。

关于c - 使用函数指针变量的地址将函数指针分配给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29687490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com