C - 指针算术用机器码测试仪骨架

Ren*_*aby 0 c pointer-arithmetic

我在网上用C编写了一个类似形式的机器代码测试器.

测试人员使用指针算法运行机器代码的缓冲区.

#include <stdio.h>
#include <string.h>

unsigned char code[] = \
"machine code to be executed";

void main() {
    int (*ret)() = (int(*)())code;
    ret();
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释上面提到的两条线的指针算法背后的逻辑吗?

Cal*_*leb 5

任何人都可以解释上面提到的两条线的指针算法背后的逻辑吗?

没有指针算术.代码只是声明一个变量(ret),其类型是一个指向函数的指针,该函数不带参数并返回一个int.它将该变量设置为指向code,可能包含机器代码的实际字节,然后使用它来进行函数调用.