我在网上用C编写了类似形式的机器代码测试器。
测试器使用指针算法来运行机器代码的缓冲区。
#include <stdio.h>
#include <string.h>
unsigned char code[] = \
"machine code to be executed";
void main() {
int (*ret)() = (int(*)())code;
ret();
}
谁能解释两者的指针算法背后的逻辑 上面显示的行?
答案 0 :(得分:5)
有人能解释上面介绍的两行指针算法背后的逻辑吗?
没有指针算法。该代码仅声明一个变量(ret
),其类型是指向不带参数且返回int
的函数的指针。它将变量设置为指向code
,该变量可能包含机器代码的实际字节,然后使用它进行函数调用。