gpt4 book ai didi

c - 什么 ((void (*)())buf)();意思?

转载 作者:行者123 更新时间:2023-12-02 01:00:10 34 4
gpt4 key购买 nike

我正在解决 picoCTF 上的二进制漏洞利用挑战,并遇到了这段代码:

((void (*)())buf)();

哪里 buf是一个字符数组。

我解决了挑战,但似乎无法理解它到底在做什么。我看了 this线程,但我无法弄清楚。

什么 ((void (*)())buf)();意思?

最佳答案

void (*)()是一种类型,该类型是“指向采用不确定参数且不返回值的函数的指针”。
(void (*)())是上述类型的类型转换。
(void (*)())buf铸件 buf到上述类型。
((void (*)())buf)()调用函数(不传递参数)。

简而言之:它告诉编译器处理 buf作为指向函数的指针,并调用该函数。

关于c - 什么 ((void (*)())buf)();意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59734421/

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