超级难题!!!!!!
假定一个程序中有fun()这样一个函数,那么怎么得到fun()在内存中的入口地址及返回地址,包括fun()所占空间大小? (最好,不要内嵌汇编!) 问题点数:40、回复次数:5Top
1 楼wao(wao)回复于 2001-01-28 11:33:00 得分 0
入口地址就是fun指针了。至于返回地址就不知道了。不过,你问这个干什么?Top
2 楼launch(飞星子)回复于 2001-01-28 12:59:00 得分 20
入口地址就是fun指针了,至于fun()所占大小,可以在fun()函数后紧接着一个函数,比如funend(),将funend指针跟fun指针相减,就可以知道fun()函数的大小,基本上fun()的返回地址就是funend指针减1。Top
3 楼hyqryq(不知道叫什么好)回复于 2001-01-28 18:56:00 得分 0
入口地址就是fun指针了。
但fun()所占空间大小很难计算,因为fun()不但要占用堆中的空间,
还要占用栈中的空间.
用launch(飞星子)的方法可以计算出占用堆中的空间.
Top
4 楼Tice(孤笑)回复于 2001-01-28 20:06:00 得分 0
强兄,能详细介绍一下吗?Top
5 楼hyqryq(不知道叫什么好)回复于 2001-01-29 14:04:00 得分 20
例:
int a(){................}
int b(){................}
main()
{
int (*p1)();
int (*p2)();
int size;
p1=a;
p2=b;
size=p2-p1;//一般是堆中的大小.
//这就是launch(飞星子)方法的大体内容;
(by the way:不用内嵌汇编很难实现.)
Top




