
由程序员分配释放的内存单元,若程序员不释放,则在程序关闭时由操作系统回收.
如何将数据放在堆区
在C++中由new关键字在堆区中开辟内存。
1 |
|
输出结果为:
1 |
10 |
看到上述代码的创建局部指针变量,但数据存放在栈区是什么意思呢?
其实在a_p这个指针变量,仍然是一个局部变量,只不过它在由new在堆区开辟的内存中存放的,请看下图。

也就是说*a_p只不过是指向的堆区中的数据,但是这个指针变量还是存放在栈区的。函数的最终返回值时堆区的10的地址。

由程序员分配释放的内存单元,若程序员不释放,则在程序关闭时由操作系统回收.
在C++中由new关键字在堆区中开辟内存。
1 |
|
输出结果为:
1 |
10 |
看到上述代码的创建局部指针变量,但数据存放在栈区是什么意思呢?
其实在a_p这个指针变量,仍然是一个局部变量,只不过它在由new在堆区开辟的内存中存放的,请看下图。

也就是说*a_p只不过是指向的堆区中的数据,但是这个指针变量还是存放在栈区的。函数的最终返回值时堆区的10的地址。
近期评论