堆内存的问题?

tidyduck 2007-11-23 03:16:17
请问如何获得当前程序的堆内存起始地址?
刚刚写了个小程序试了一下,发现了个问题
有类成员变量char* m_pStr及如下两个函数
OnBtn1()
{
m_pStr = "Hello";
AfxMessageBox(m_pStr);
}

OnBtn2()
{
AfxMessageBox(m_pStr);
}


在点击Btn1后再点击Btn2,仍然可以正常出现Hello
也就是说,m_pStr = "Hello";
这种赋值方式,实际上Hello是被分配在堆上喽?
不然的话在函数退出时,不是应该清空栈么?
这是本人的理解,不过我又听说另一种说法是这样做有危险,但具体如何危险不太清楚了

请各位前辈指点,谢谢!

...全文
34 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
caicaileowince 2007-11-23
  • 打赏
  • 举报
回复
好像是存在静态数据区

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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