【发布时间】:2014-05-24 21:17:26
【问题描述】:
我正在寻找一种加载函数并将其转换为 char 的方法; 我想获取它的字节数。
void myFunc();
int main()
{
char myChar =(char)&myFunc; // stuff like that
return 0;
}
void myFunc()
{
printf("hi!");
}
我试图取消引用我的地址指针@user2482551:
这是我的新代码:
#include <stdio.h>
void myFunc(){
printf("hi");
}
int main(){
unsigned int* c = (unsigned int*)(&myFunc);
printf("%d\n",*c);
return 0;
}
输出:-443987883
你知道这是什么意思吗?
【问题讨论】:
-
您希望
myChar成为什么?指向函数的指针?或字符串"hi!"? -
@Pavel 它有 SMC(自我修改代码)尝试的味道。
-
@WhozCraig 好吧,任何现代操作系统都可能以单个“分段错误”结束任何“SMC”尝试:)
-
不,我想获得函数“bytes”,它是
&myFunc地址处的RAM -
这对编译器、体系结构和操作系统非常依赖,甚至不应该是您在堆栈溢出时询问的问题。
标签: c