void print( char * str ){ printf("%s",str); }
void some_function(){
... Loads a file into `char * buffer` ...
... Stores the function print before `buffer` address ...
((void(*)(void))buffer();
}
在文件中,有一个“Hello World”,还有一些不可读的字符。执行缓冲区将打印“Hello World”。
我知道你可以执行这样的指针:
void (*foo)(int) = &bar; // such that void bar(int)
(*foo)(123);
但是将 void(int) 函数作为 void(void) 函数执行,其函数和参数在内存中对我来说是新的。
是否有一个函数在内存中的外观标准(如字符串以空字符终止),以便您可以以这种方式执行它?