当前位置: 首页 > java >正文

内存四区(堆)

在上一次分享中,我和大家分享了栈区,今天栈区来了。

而内存四区中,堆区是干嘛的呢?

堆区,也是用来存放数据的,只不过呢,堆区中的数据的生死存亡是由程序员来控制的。

当然如果你一直不管堆区中数据的死活,编译器也会在程序结束后,清理掉它。

接下来我们先放代码

#include<iostream>
using namespace std;int*ffff()
{int a = 10;//这是一个普通的局部变量,存放在栈区int* p = new int(20);//关键字符new,运用new,就可以在堆区开辟空间存放数据,new+类型+(初始值)return p;
}int main()
{int* t= ffff();cout << *t << endl;cout << *t << endl;cout << *t << endl;cout << *t<< endl;return 0;
}

就像上面的代码,使用new这个关键字符在,在堆区中开辟了一个空间来存放数据,然后他就会返回这个空间的地址,所以才需要创建一个指针来接收

     int* p = new int(20);//关键字符new,运用new,就可以在堆区开辟空间存放数据,new+类型+(初始值)

 不同于栈区存放的局部变量只会保留一次后随时可能被清理掉,堆区的数据,如果程序员一直不管它的话,编译器会在程序结束后清理掉它。

所以多次根据地址打印,它的值都不会变。

对于堆区我们可以总结两点:

1.堆区由程序员掌控分配。

2.可以用new这个关键字符,在堆区上开辟空间。


http://www.xdnf.cn/news/2445.html

相关文章:

  • Git命令(Gitee)
  • Linux—— 版本控制器Git
  • Linux 在个人家目录下添加环境变量 如FLINK_PROPERTIES=“jobmanager.rpc.address: jobmanager“
  • Android LiveData关键代码
  • Docker小游戏 | 使用Docker部署文字修仙网页小游戏
  • Xray-安全评估工具
  • 月之暗面开源-音频理解、生成和对话生成模型:Kimi-Audio-7B-Instruct
  • 【DNS】BIND9 域名解析快速入门
  • Spring框架的ObjectProvider用法
  • 【C++】类和对象【中上】
  • C++ 完全数
  • Android四大核心组件
  • Linux(Centos版本)中安装Docker
  • 哈希表基础
  • 使用rsync和inotidy-tools来进行实时备份文件夹数据
  • Awesome-Embodied-AI: 具身机器人的资源库
  • CentOS7.9安装Python 3.10.11并包含OpenSSL1.1.1t
  • STM32(M4)入门:定时器延时与系统滴答(价值 3w + 的嵌入式开发指南)
  • uni-app 中使用 mqtt.js 的完整版
  • uniapp: 低功耗蓝牙(BLE)的使用
  • 在winform中使用chromiumWebBrowser显示Echarts图表
  • 【RabbitMQ】保证消息不丢失
  • 汽车网络安全 -- 理解暴露面、攻击面和攻击向量
  • 极狐GitLab 议题权重有什么作用?
  • 编译流程、make命令与nccl-test中的Makefile解析
  • 【Spark入门】Spark简介:分布式计算框架的演进与定位
  • C++?动态内存管理!!!
  • 云计算赋能质检LIMS的价值 质检LIMS系统在云计算企业的创新应用
  • Unity3D Cinemachine 高级应用指南
  • PyDantic入门介绍:Python数据验证与解析的利器