gpt4 book ai didi

c中的另一个函数通过其地址调用函数

转载 作者:行者123 更新时间:2023-11-30 19:24:04 25 4
gpt4 key购买 nike

我的程序目标是重写返回地址以返回到另一个函数 b() 。我可以到达并重写返回地址,但无法获取我想要返回到 b() 的函数的地址。

int main(){
a();
}

int a(){
int *ret;
ret=(int*)&ret+2;
(*ret)=(int)b(); // <<<<<<<< Here is the problem !!!!
}

int b(){
}

最佳答案

当您编写b()时,您正在调用b函数。如果您想要该函数的地址,只需编写 b

*ret=(int)b;

请注意,我不知道这是否会做你想要的事情,而且它不是正确的 C - 你想要做的事情在标准的、可移植的 C 中是不可能的。这完全取决于你的实现、CPU 以及如何编译器将优化所有代码。

关于c中的另一个函数通过其地址调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7704272/

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