Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这段代码在C++;做 这个C++代码片段是做什么的?我试着阅读了很多关于指针的资料,但我就是想不通 long address = *((long *)(another_address + 0x0)); int(*function)() = (int(*)())address;_C++ - Fatal编程技术网

这段代码在C++;做 这个C++代码片段是做什么的?我试着阅读了很多关于指针的资料,但我就是想不通 long address = *((long *)(another_address + 0x0)); int(*function)() = (int(*)())address;

这段代码在C++;做 这个C++代码片段是做什么的?我试着阅读了很多关于指针的资料,但我就是想不通 long address = *((long *)(another_address + 0x0)); int(*function)() = (int(*)())address;,c++,C++,编辑:另一个地址是vtable地址。我试图将其移植到Python,实际上是在询问指针是如何工作的(在代码段中)。(另一个地址+0x0)计算为另一个地址,然后转换为长*,然后取消引用 (int(*)()())address将address强制转换为一个不带参数的函数,并返回一个int,然后将其分配给具有相同签名的函数。我猜它手动解析vtable另一个_地址可能是vtable指针-指向函数指针数组的指针。代码提取该vtable插槽0中的地址,并将其强制转换为可以调用的函数指针。啊,对不起,另一个_地

编辑:另一个地址是vtable地址。我试图将其移植到Python,实际上是在询问指针是如何工作的(在代码段中)。

(另一个地址+0x0)
计算为另一个地址,然后转换为
长*
,然后取消引用


(int(*)()())address
address
强制转换为一个不带参数的函数,并返回一个
int
,然后将其分配给具有相同签名的
函数。

我猜它手动解析vtable
另一个_地址
可能是vtable指针-指向函数指针数组的指针。代码提取该vtable插槽0中的地址,并将其强制转换为可以调用的函数指针。啊,对不起,另一个_地址是vtable的地址是。该代码旨在从vtable获取虚拟函数。我正试图将其移植到Python,所以我实际上是在问指针是如何工作的——可能应该在我的问题中包括这一点。我想我不明白这个问题。有什么特别不清楚的地方吗?