CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

超级难题!!!!!!

楼主Tice(孤笑)2001-01-28 11:05:00 在 C/C++ / C语言 提问

假定一个程序中有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

相关问题

  • 超级难题!!!!
  • 超级难题!!!
  • 超级难题
  • ************超级难题**************
  • ****************超级难题*****************
  • ~~~~~超级难题~~~~~~~
  • 超级难题!!!!
  • 超级难题
  • 超级超级难题
  • 超级大难题!!!

关键词

  • 指针
  • 函数
  • fun
  • funend
  • 地址
  • 入口
  • 占用
  • 大小
  • 空间
  • 返回

得分解答快速导航

  • 帖主:Tice
  • launch
  • hyqryq

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo