堆内存的问题?
请问如何获得当前程序的堆内存起始地址?
刚刚写了个小程序试了一下,发现了个问题
有类成员变量char* m_pStr及如下两个函数
OnBtn1()
{
m_pStr = "Hello";
AfxMessageBox(m_pStr);
}
OnBtn2()
{
AfxMessageBox(m_pStr);
}
在点击Btn1后再点击Btn2,仍然可以正常出现Hello
也就是说,m_pStr = "Hello";
这种赋值方式,实际上Hello是被分配在堆上喽?
不然的话在函数退出时,不是应该清空栈么?
这是本人的理解,不过我又听说另一种说法是这样做有危险,但具体如何危险不太清楚了
请各位前辈指点,谢谢!