[C++ 核心编程]笔记 2 栈区和堆区

news2024/10/9 12:16:34

栈区:

由编译器自动分配释放,存放函数的参数值,同部变量等
注意事项:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

//栈区数据注意事项  不要返回局部变量的地址
//栈区的数据由编译器管理开辟和释放

int* func(int a)//形参数据也会放在栈区
{
	int a = 10;//局部变量 存放在栈区,栈区的数据在函数执行完后自动释放
	return &a;// 返回局部变量的地址

}
int main() {
	//接受func函数的返回值
	int * p = func(1);

	cout << *p << endl;//第一次可以打印正确的数字, 是因为编译器做了保留(vs2022)
	cout << *p << endl;//第二次这个数据就不再保留了

	system("pause");
	return 0;
}

堆区:

由程序员分配释放,若程序员不释放,程序结束时由操作系统回收
在C++中主要利用new在堆区开辟内存

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

int * func()
{
	//利用new关键字   可以将数据开辟到堆区
	//指针 本质上也是局部变量, 放在栈上, 指针保存的数据是放在堆区
	int * p = new int(10);
	return p;
}
int main() {
	//在堆区开辟数据
	int* p = func();

	cout << *p << endl;
	cout << *p << endl;
	cout << *p << endl;
	cout << *p << endl;

	system("pause");
	return 0

运行结果如下:
在这里插入图片描述

可以看到,与堆区不同,栈区的数据不会自行释放内存(运行了四次数据仍然保持不变)

总结:

  1. 堆区数据由程序员管理开辟和释放
  2. 堆区数据利用new关键字进行开辟内存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【架构师】系统架构相关知识

本文仅做技术交流&#xff0c;转载请注明来源&#xff0c;切勿商用。 参考&#xff1a;系统架构师考纲及教材 1、系统架构的概念 架构是一种表达&#xff0c;而非可运行的软件。 1&#xff09;分析设计在满足所规定的需求方面的有效性 2&#xff09;在设计变更相对容易的阶段…

【读书笔记·VLSI电路设计方法解密】问题4:今天的设计环境中使用的主要工艺技术是什么

主流的工艺技术是互补金属氧化物半导体&#xff08;CMOS&#xff09;技术。其他技术还包括双极性、双极CMOS&#xff08;biCMOS&#xff09;、绝缘体上硅&#xff08;SOI&#xff09;和砷化镓&#xff08;GaAs&#xff09;。 在CMOS技术中&#xff0c;"互补对称"指的…

Android开发:日志功能备忘

临时记一下吧&#xff0c;以后就直接复制粘贴这里面的好了。 实现一个日志记录程序的运行状态&#xff0c;并且带上时间信息&#xff0c;可以写一个类灵活调用。 MyLog.java package com.example.networkaccessrestrictions;import static android.content.ContentValues.TAG;i…

目标检测实战教程Day1(原创)

原创不易&#xff0c;转载请标明本文地址 目标检测一直是计算机视觉领域的核心问题之一&#xff0c;它就像是让计算机拥有了一双“鹰眼”&#xff0c;能在复杂的图像中迅速锁定和识别出各种有趣的目标&#xff0c;比如人、汽车、动物或者任何其他特定物体。在这一章&#xff0c…

【汇编语言】寄存器(CPU工作原理)(五)—— 段寄存器以及CS和IP

文章目录 前言1. 段寄存器2. CS 和 IP结语 前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程的角度出发就太片面了&#xff0c;其实学习汇编语言可以深入理解计算机底层工作原理&#xff0c;提升代码…

产品推介——AC晶体管光耦KL814

KL814产品系列&#xff0c;由苏州晶台光电有限公司研发生产的一款采用交流输入的晶体管光耦。它结合了两个反向并联的红外发射二极管与一个光电晶体管&#xff0c;构成了一个高效且稳定的光电耦合器。 产品特点Product features ◆交流输入响应 ◆电流传输比 (CTR&#xff1…

vs2022调试cmake工程时,添加命令行参数

第一步&#xff1a; 第二步&#xff1a;在launch.vs.json文件里添加 至此可以在调试当前工程时&#xff0c;可以传入命令行参数。

十款超好用的图纸加密软件推荐!2024企业图纸加密最佳选择!

在企业日常工作中&#xff0c;尤其是制造业、建筑业和设计行业&#xff0c;图纸安全至关重要。图纸泄露可能导致专利技术被盗、商业机密外泄&#xff0c;给公司带来不可估量的损失。为了确保图纸的安全性&#xff0c;图纸加密软件是必不可少的工具。以下是2024年十款超好用的图…

Damerau-Levenshtein算法实现中的错误及更正

在实现 Damerau-Levenshtein 算法 时&#xff0c;常见的错误包括边界条件处理不当、转置操作的遗漏或误用、矩阵初始化错误等。Damerau-Levenshtein 算法是 Levenshtein 编辑距离的扩展&#xff0c;它不仅允许插入、删除和替换&#xff0c;还允许 相邻字符的转置。该算法计算两…

明达IO:赋能工业机器人新未来

摘要&#xff1a; 明达技术以其卓越的分布式IO&#xff08;MR30&#xff09;与一体式IO&#xff08;MR20&#xff09;产品&#xff0c;为工业机器人行业提供了完美的信号交互解决方案。在集群式机器人应用场景中&#xff0c;MR30分布式IO以其稳定性能和自由热插拔功能&#xf…

FPGA学习(4)-时序逻辑电路实现D触发器与计数器,LED灯闪烁

1.实现原理 开发板的频率为50MHz&#xff0c;即一个周期为20ns&#xff0c;实现500ms一次翻转&#xff0c;即计数25_000_000次。每次时钟沿来一次&#xff0c;就计一次。 2. 新建工程 2.1源文件代码 在下面左边的变量值要变的&#xff0c;就用reg。不涉及的缺省&#xff1b;…

自动气象观测系统的工作原理

TH-QC8自动气象观测系统是一种能够自动采集、存储、处理和传输气象数据的系统&#xff0c;它广泛应用于气象监测、农业生产、航空安全、交通运输以及科学研究等领域。以下是对自动气象观测系统的详细介绍&#xff1a; 工作原理 自动气象观测系统的工作原理相对简单但高效。它首…

真心建议大家都去冲一冲AI产品经理,AI真的能帮你实现职场跃迁

你有没有想过&#xff1a; AI不仅能帮你实现工作提效 还能帮你实现职场跃迁&#xff01; 根据行业报告&#xff0c;近年来AIGC&#xff08;AI Generated Content&#xff09; 领域岗位数量井喷式增长&#xff0c;AI大模型产品经理作为连接技术与市场的桥梁&#xff0c;正扮演…

Git的安装配置

目录 一、git和svn的区别是什么 二、下载Git 三、安装 四、使用 一、git和svn的区别是什么 1、git是分布式的&#xff0c;svn是集中的式的 2、git存储数据时是按元数据的方式存储&#xff0c;而svn是按文件的方式存储 3、git分支和svn的分支不一样 4、git没有全局版本号…

认知战认知作战:萨尔浒之战-努尔哈赤认知作战下的明朝崩溃

认知战认知作战&#xff1a;萨尔浒之战-努尔哈赤认知作战下的明朝崩溃 关键词&#xff1a;萨尔浒战役,后金,努尔哈赤,明朝,认知作战,地形误判,舆论战,军事胜利,盟友支持,内部腐败,认知作战,新质生产力,人类命运共同体,认知战,认知域,认知战研究中心,认知战争,认知战战术,认知战…

雨天道路目标检测数据集(黑夜和白天) 3600张 雨天 带标注 voc yolo 7类

雨天道路目标检测数据集 3600张 雨天 带标注 voc yolo 白天 分类名: (图片张数&#xff0c; 标注个数) car :(1134&#xff0c;10528) truck:(394&#xff0c;722) per son:(387&#xff0c;1585) rider: (47&#xff0c; 56) bike:(64&#xff0c;86) bus:(187&#xff0c; 25…

iOS swift5 苹果app审核被拒 1.4.1

文章目录 1.被拒2. 官网1.4.1的规定3.如何解决参考博客 1.被拒 准则1.4.1-安全-人身伤害 该应用程序连接到外部医疗硬件&#xff0c;以提供医疗服务。然而&#xff0c;为了遵守准则1.4.1&#xff0c;您必须&#xff1a; -提供来自适当监管机构的文件&#xff0c;证明应用程序…

【DataSophon】DataSophon1.2.1 整合Zeppelin并配置Hive|Trino|Spark解释器

目录 ​一、Zeppelin简介 二、实现步骤 2.1 Zeppelin包下载 2.2 work配置文件 三、配置常用解释器 3.1配置Hive解释器 3.2 配置trino解释器 3.3 配置Spark解释器 一、Zeppelin简介 Zeppelin是Apache基金会下的一个开源框架&#xff0c;它提供了一个数据可视化的框架&am…

使用java分别输出二叉树的深度遍历和广度遍历

代码功能 这段Java代码定义了一个二叉树&#xff0c;并实现了两种遍历方法&#xff1a;深度优先搜索&#xff08;DFS&#xff09;和广度优先搜索&#xff08;BFS&#xff09;。通过DFS&#xff0c;代码从根节点开始&#xff0c;优先访问子节点&#xff0c;直至最深的节点&…

气膜体育馆在学校中的应用:创新教育设施的未来—轻空间

随着气膜体育馆的广泛推广&#xff0c;越来越多的学校开始探索其在日常教学和活动中的应用&#xff0c;开创了新的教育模式和学生体验。 提升体能训练与健康教育 气膜体育馆以其卓越的设施条件&#xff0c;为学生的体能训练提供了理想的场所。在这里&#xff0c;专业教练可以为…