我几天前踩了下面的代码,我不确定它到底是做什么的。
int (*func) ();
func = (int (*) () ) some_array_here;
(int) (*func) ();
第一行看起来像一个整数指针但是()s错误了。第二行看起来像演员和第三行,我真的不知道。你们能帮忙吗?感谢
答案 0 :(得分:9)
第一行声明一个函数指针。第二行将some_array_here
强制转换为函数指针。第三行通过该指针调用函数调用。
我的猜测是上下文是某种shell编码示例(即执行用户注入的代码)。你不应该在现实生活中这样做。
答案 1 :(得分:1)
在第一行中,func是指向函数的指针,其返回类型为int
。
第二行将some_array_here
转换为函数指针。
第3行是使用func
指针的函数调用。