#include <iostream>
using namespace std;//栈区的数据程序执行完之后就释放。用指针指向某数据,但是函数指向完,该指针指向的位置的内容已经被释放。
//所以不要返回局部变量的地址 !!!
int * func1(){int a=10;return &a;
}
//用new产生的数据是被放在堆区的,由程序员自行管理。 指针是在栈上的,它指向的值是放在堆区的。
//因此函数执行后堆区的数据也不会被释放。直到整个程序运行完毕 (关闭弹出exe窗口之后)
//或者由程序员用delete将堆区的数据释放
//所以可以成功获取到数值
int * func2(){int *p=new int(10);return p;
}int main(){//  int *p=func1();int *p=func2();cout << *p << endl;cout << *p << endl;  //  delete p;cout << *p << endl;    return 0;
}

总结:
1.利用new关键字可以创建堆区的数据
2.数据创建好之后不是返回数据本身,而是把该堆区创建的数据的地址返回给你。

程序的内存模型—内存四区—堆区相关推荐

  1. c/c++教程 - 2.1 程序的内存模型 内存四区 代码区 全局区 堆区 栈区 new操作符

    第2章为C++核心编程. 本阶段主要针对C++面向对象编程做详细讲解. 目录 1.内存分区模型 1.1 程序运行前(代码区.全局区) 1.2 程序运行后:(栈区.堆区) 1.3 new操作符(堆区内存 ...

  2. 面试回答,JVM内存模型/内存空间:运行时数据区

    发布于个人公众号,打开微信,搜索MelodyJerry即可 本文由作者原文 [JVM|内存模型] Java虚拟机的内存模型?也就这7个而已 修改而来,可点击左下角阅读原文. JVM内存模型/内存空间 ...

  3. jvm内存模型_四种视角看JVM内存模型

    1.JVM运行视角 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区           1 .程序计数器         程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的行号 ...

  4. 深入理解Java内存模型(四)——volatile

    2019独角兽企业重金招聘Python工程师标准>>> volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别.理解volatile特性的一个好 ...

  5. 深入了解JVM之内存模型(四)

    文章目录 一.前言 二.问题 1.为什么有内存模型? 2.内存模型解决了什么问题?又带来了什么问题? 3.什么是java内存模型?说一下它的三大特性. 4.volatile是什么?有什么用? 5.vo ...

  6. java和内存交互,java内存模型-内存间交互操作

    前言 本文是阅读周志明大佬的<深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)>第12章,12.3节Java内存模型得来的读书笔记. 阅读告警

  7. Linux下C语言程序的内存布局(内存模型)

    在<虚拟地址空间以及编译模式>一节中讲到,虚拟地址空间在32位环境下的大小为 4GB,在64位环境下的大小为 256TB,那么,一个C语言程序的内存在整个地址空间中是如何分布的呢?数据在哪 ...

  8. 进程的内存分配,四区和五区

    四区和五区 C/C++把内存分为:栈区.堆区.全局区(静态区).常量区.代码区 C/C++中的内存分为四个区域,分别是: 1. 栈区(Stack):由编译器自动分配和释放,存放函数的参数值.局部变量的 ...

  9. 堆(概念,数据结构中堆与内存堆区的区别 ,堆的基本操作)

    堆的特性: 必须是完全二叉树 用数组实现 任一结点的值是其子树所有结点的最大值或最小值 最大值时,称为"最大堆",也称大根堆: 在完全二叉树中,任何一个子树的最大值都在这个子树的根 ...

最新文章

  1. 机器人会模仿人类微笑了,但我总觉得这笑容……
  2. 【思维导图】音乐为何会让我们产生特定情绪?
  3. ubuntu18.04下pyaudio的安装
  4. ubuntu160.4+anaconda3 +tensorflow1.140 +keras2.2.5安装
  5. SRS流媒体服务器——Edge集群搭建
  6. MySQL 删除数据的最好的方式
  7. 程序员过关斩将--从每秒6000写请求谈起
  8. easyUI 展开DataGrid里面的行显示详细信息
  9. java如何寻找main函数对应的类
  10. php如何用菜刀连接getshell,phpmyadmin之getshell总结
  11. iOS平台一套完善的Crash Report解决方案
  12. 利用CSS3 animation绘制动态卡通人物,无需使用JS代码
  13. gpt-2 文章自动生成_有助于您理解GPT-3的文章
  14. 基于PHP的超市库存管理系统
  15. Python常用模块12-python的xlsxwriter模块(操作excel)
  16. win11取消右键菜单折叠恢复经典传统菜单模式方法解决
  17. Linux入门基础教程
  18. Ubuntu 安装QT 教程
  19. 怎么用微信打开wifi连接到服务器,微信一键连wifi在哪里 微信一键连wifi怎么使用...
  20. 微信软文的作用说到底就是营销的一种手段

热门文章

  1. mysql 优化(一)
  2. HTML5 随机弹跳的小球
  3. .net Csharpt C# UDP 异步发送信息 代码实例
  4. 编写Ogre插件的一般方法
  5. 调用 动态库 实现插件(windows linux)
  6. HP LoadRunner 11.00 新鲜尝
  7. 如何自定义Shell登录组件
  8. ArcGIS 桌面版安装和ArcMap添加mdb库表基本操作
  9. 破解时的数据约束性和winhex操作失败
  10. Window 10 :如何彻底关闭:Windows Defender Service(2015-12-20日更新)