请问如何判别指针指向的什么类型的内存?

kaku_you 2002-07-12 05:12:50
请问如何判别指针指向的什么类型的内存?,就是判定指向的是堆内存还是栈内存,最近犯了几个释放栈内存的错误。
...全文
24 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
北极猩猩 2002-07-13
  • 打赏
  • 举报
回复
RTTI只能用来判断指针指向内容的类型,不能判断指针究竟是指向栈还是堆。
这种判断应该是无法实现的。
earthharp 2002-07-12
  • 打赏
  • 举报
回复
用RTTI试下,我没试过
bryan99 2002-07-12
  • 打赏
  • 举报
回复
GZ
cxjddd 2002-07-12
  • 打赏
  • 举报
回复
RTTI
anrxhzh 2002-07-12
  • 打赏
  • 举报
回复
http://www.csdn.net/develop/read_article.asp?id=11319
天外飞狐 2002-07-12
  • 打赏
  • 举报
回复
一般来说是没办法判断地。
作为一个程序员,你应该知道那个指针的指向,而不是要判断后才决定那个指针是用free的。这也太搞笑了
就象一个人问你是man or women,你说你不知道(除非你是阴/阳),但是在内存上不存在这个问题,他是绝对的单一属性
LeeMaRS 2002-07-12
  • 打赏
  • 举报
回复
偶觉得应该从根本上避免这个问题,而不是想办法知道是堆的内存还是栈的内存,以此为根据判断是否应该释放.
软猫克鲁 2002-07-12
  • 打赏
  • 举报
回复
释放的时候需要关心是指向什么类型数据的指针么?
rockhard 2002-07-12
  • 打赏
  • 举报
回复
使用typeid
void drawing( Figure *p )
{
if( typeid(*p).name() == "Circle" )
((Circle*)p) -> draw();
if( typeid(*p).name() == "Rectangle" )
((Rectangle*)p) -> draw();
}

可看看这篇文章:http://www.umlchina.com/jof/jof02/RTT.htm

he_wei 2002-07-12
  • 打赏
  • 举报
回复
那好象是编译器所关心的,而不是程序员.
liushmh 2002-07-12
  • 打赏
  • 举报
回复
调试时可以看看
LeeMaRS 2002-07-12
  • 打赏
  • 举报
回复
没有办法判断的吧.

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧