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)
任何人都可以解释上面提到的两条线的指针算法背后的逻辑吗?
任何人都可以解释上面提到的两条线的指针算法背后的逻辑吗?
没有指针算术.代码只是声明一个变量(ret),其类型是一个指向函数的指针,该函数不带参数并返回一个int.它将该变量设置为指向code,可能包含机器代码的实际字节,然后使用它来进行函数调用.