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

C++学习笔记之内存管理

仅用于记录学习理解

选择题答案及解析

  1. globalVar:C(数据段 (静态区))
    • 解析:全局变量存放在数据段(静态区),生命周期从程序开始到结束,程序运行期间一直存在。
  2. staticGlobalVar:C(数据段 (静态区))
    • 解析:静态全局变量同样存放在数据段(静态区),它的作用域仅限于本文件,和全局变量一样在程序运行期间存在。
  3. staticVar:C(数据段 (静态区))
    • 解析:函数内的静态局部变量存储在数据段(静态区),它在函数第一次调用时初始化,之后调用保持上次的值,直到程序结束。
  4. localVar:A(栈)
    • 解析:局部变量存放在栈中,函数调用时为其分配空间,函数结束时空间被释放 。
  5. num1:A(栈)
    • 解析:局部数组也是在栈上分配空间,其生命周期和局部变量类似,函数结束空间释放。
  6. char2:A(栈)
    • 解析:局部字符数组在栈上分配空间,存储字符数组内容。
  7. *char2:C(数据段 (静态区))
    • 解析:char2 数组中的字符内容存放在静态存储区(常量区性质),因为字符串常量存储在静态存储区,这里是数组形式存储字符串。
  8. pChar3:A(栈)
    • 解析:指针变量 pChar3 本身是局部变量,存放在栈中,存放的是字符串常量的地址。
  9. *pChar3:D(代码段 (常量区))
    • 解析:pChar3 指向的字符串常量 "abcd" 存放在代码段(常量区) ,常量区存放程序中不会改变的常量。
  10. ptr1:A(栈)
    • 解析:指针变量 ptr1 是局部变量,存放在栈中,它存放通过 malloc 分配的堆内存地址。
  11. *ptr1:B(堆)
    • 解析:ptr1 指向的是通过 malloc 在堆上分配的内存空间,所以 *ptr1 所在空间是堆。

填空题答案及解析

  1. sizeof(num1)40
    • 解析:num1 是包含 10 个 int 类型元素的数组,int 类型在常见系统下一般占 4 字节,所以 sizeof(num1) 为 10 * 4 = 40 字节。
  2. sizeof(char2)5
    • 解析:char2 是字符数组,存储字符串 "abcd" ,字符串末尾会自动添加一个 '\0' 作为结束符,所以一共占 5 个字节。
  3. strlen(char2)4
    • 解析:strlen 函数计算字符串长度,不包含字符串结束符 '\0' ,所以 "abcd" 长度为 4。
  4. sizeof(pChar3)4(或 8,取决于系统指针大小)
    • 解析:pChar3 是指针变量,在 32 位系统下指针一般占 4 字节,64 位系统下指针一般占 8 字节。
  5. strlen(pChar3)4
    • 解析:pChar3 指向字符串 "abcd" ,strlen 计算其长度(不包含结束符)为 4。
  6. sizeof(ptr1)4(或 8,取决于系统指针大小)
    • 解析:ptr1 是指针变量,和 pChar3 类似,在 32 位系统下占 4 字节,64 位系统下占 8 字节。

相关文章:

C++学习笔记之内存管理

仅用于记录学习理解 选择题答案及解析 globalVar:C(数据段 (静态区)) 解析:全局变量存放在数据段(静态区),生命周期从程序开始到结束,程序运行期间一直存在。 staticGlobalVar&…...

针对 MySQL 数据库中 主键/唯一约束的更新方法 和 ON DUPLICATE KEY UPDATE 语法的详细说明及示例,并以表格总结

以下是针对 MySQL 数据库中 主键/唯一约束的更新方法 和 ON DUPLICATE KEY UPDATE 语法的详细说明及示例,并以表格总结: 一、主键的更新 1. 更新主键的条件 允许更新:MySQL 允许更新主键列,但需满足以下条件: 唯一性…...

day21 学习笔记

文章目录 前言一、删除数据二、索引操作1.loc方法2.iloc方法 三、添加数据1.loc方法添加数据2.concat方法拼接数据 四、重置索引 前言 通过今天的学习,我掌握了对Pandas对象数据元素进行增删操作以及重置索引的操作 一、删除数据 DataFrame.drop(labelsNone, axis…...

【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法

增删改查操作 接下来,我们来实现一下用户的增加、删除和修改的操作。 增( Insert ) UserInfoMapper接口: 我们写好UserInfoMapper接口后,自动生成 XML 代码; UserInfoMapper.xml实现: 增删改查方法命名规范 如果我们…...

【Pandas】pandas DataFrame select_dtypes

Pandas2.2 DataFrame Attributes and underlying data 方法描述DataFrame.index用于获取 DataFrame 的行索引DataFrame.columns用于获取 DataFrame 的列标签DataFrame.dtypes用于获取 DataFrame 中每一列的数据类型DataFrame.info([verbose, buf, max_cols, …])用于提供 Dat…...

使用Python构建Kafka示例项目

新建项目 mkdir python-kafka-test cd python-kafka-test 安装依赖 pip install confluent_kafka 创建配置文件 # Kafka配置文件# Kafka服务器配置 KAFKA_CONFIG {bootstrap.servers: localhost:9092,# 生产者特定配置producer: {client.id: python-kafka-producer,acks:…...

本地化部署DeepSeek-R1蒸馏大模型:基于飞桨PaddleNLP 3.0的实战指南

目录 一、飞桨框架3.0:大模型推理新范式的开启1.1 自动并行机制革新:解放多卡推理1.2 推理-训练统一设计:一套代码全流程复用 二、本地部署DeepSeek-R1-Distill-Llama-8B的实战流程2.1 机器环境说明2.2 模型与推理脚本准备2.3 启动 Docker 容…...

VBA 64位API声明语句第008讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高…...

Linux信号——信号的保存(2)

关于core和term两种终止方式 core是什么? 将进程在内存中的核心数据(与调试有关)转存到磁盘中形成core,core.pid的文件。 core dump:核心转储。 core与term的区别: term只是普通的终止,而core终止方式还要…...

PyQt6实例_A股日数据维护工具_权息数据增量更新线程

目录 前置: 代码: 1 工作类 2 数据库交互 3 主界面启用子线程 视频: 前置: 1 本系列将以 “PyQt6实例_A股日数据维护工具” 开头放置在“PyQt6实例”专栏 专栏地址 https://blog.csdn.net/m0_37967652/category_12929760.h…...

【蓝桥杯嵌入式——学习笔记一】2016年第七届省赛真题重难点解析记录,闭坑指南(文末附完整代码)

在读题过程中发现本次使用的是串口2,需要配置串口2。 但在查看产品手册时发现PA14同时也是SWCLK。 所以在使用串口2时需要拔下跳线帽去连接CH340。 可能是用到串口2的缘故,在烧录时发现报了一个错误。这时我们要想烧录得按着复位键去点击烧录&#xff0c…...

基础常问 (概念、代码)

读源码 代码题 Void方法 ,也可以提前rerun;结束 RandomAccessFile类(随机访问文件) 在 Java 中,可以使用RandomAccessFile类来实现文件指针操作。RandomAccessFile提供了对文件内容的随机访问功能,它的文件指针可以通…...

大学生机器人比赛实战(一)综述篇

大学生机器人比赛实战 参加机器人比赛是大学生提升工程实践能力的绝佳机会。本指南将全面介绍如何从零开始准备华北五省机器人大赛、ROBOCAN、RoboMaster等主流机器人赛事,涵盖硬件设计、软件开发、算法实现和团队协作等关键知识。 一、比赛选择与准备策略 1.1 主…...

什么是宽带拨号?

宽带拨号(PPPoE拨号)是一种通过账号密码认证接入互联网的方式,常见于家庭宽带、企业专线等场景。用户需要通过路由器或电脑进行拨号连接,运营商验证身份后分配IP地址,才能正常上网。 1. 宽带拨号的工作原理 PPPoE协议&…...

J1 ResNet-50算法实战与解析

🍨 本文為🔗365天深度學習訓練營 中的學習紀錄博客🍖 原作者:K同学啊 | 接輔導、項目定制 一、理论知识储备 1. 残差网络的由来 ResNet主要解决了CNN在深度加深时的退化问题(梯度消失与梯度爆炸)。 虽然B…...

[MySQL初阶]MySQL(8)索引机制:下

标题:[MySQL初阶]MySQL(8)索引机制:下 水墨不写bug 文章目录 四、从问题到底层,从现象到本质1.为什么插入的数据默认排好序2.MySQL的Page(1)为什么选择用Page?(2&#x…...

Muduo网络库实现 [九] - EventLoopThread模块

目录 设计思路 类的设计 模块的实现 私有接口 公有接口 设计思路 我们说过一个EventLoop要绑定一个线程,未来该EventLoop所管理的所有的连接的操作都需要在这个EventLoop绑定的线程中进行,所以我们该如何实现将EventLoop和线程绑定呢?…...

Vim操作指令全解析

Vim是我们在Linux日常工作中不可或缺的文本编辑器。它强大的功能和高效的编辑方式可以极大提升工作效率。本文将全面解析Vim的各种操作指令,从基础操作到高级技巧。 一、Vim模式解析 Vim是一个模式化编辑器,理解不同模式是掌握Vim的关键: …...

《K230 从熟悉到...》识别机器码(AprilTag)

《K230 从熟悉到...》识别机器码(aprirltag) tag id 《庐山派 K230 从熟悉到...》 识别机器码(AprilTag) AprilTag是一种基于二维码的视觉标记系统,最早是由麻省理工学院(MIT)在2008年开发的。A…...

VMware ESXi:企业级虚拟化平台详解

VMware ESXi:企业级虚拟化平台详解 目录 什么是VMware ESXi? ESXi的发展历史 ESXi的核心特性 3.1 裸机架构(Type-1 Hypervisor) 3.2 轻量化与高性能 3.3 集中管理(vCenter集成) ESXi的架构与工作原理…...

使用 PyTorch 的 `optim.lr_scheduler.CosineAnnealingLR` 学习率调度器

使用 PyTorch 的 optim.lr_scheduler.CosineAnnealingLR 学习率调度器 在深度学习中,学习率(Learning Rate, LR)是影响模型训练效果的一个关键超参数。一个合适的学习率调度策略可以帮助模型更快地收敛,同时避免陷入局部最优或振荡。PyTorch 提供了多种学习率调度器,其中…...

栈和队列的概念

1.栈的概念 只允许在固定的一端进行插入和删除,进行数据的插入和数据的删除操作的一端数栈顶,另一端称为栈底。 栈中数据元素遵循后进先出LIFO (Last In First Out) 压栈:栈的插入。 出栈:栈的删除。出入数据在栈顶。 那么下面…...

常用的元素操作API

click 触发当前元素的点击事件 clear() 清空内容 sendKeys(...) 往文本框一类元素中写入内容 getTagName() 获取元素的的标签名 getAttribute(属性名) 根据属性名获取元素属性值 getText() 获取当前元素的文本值 isDisplayed() 查看元素是否显示 get(String url) 访…...

红日靶场一实操笔记

一,网络拓扑图 二,信息搜集 1.kali机地址:192.168.50.129 2.探测靶机 注:需要win7开启c盘里面的phpstudy的服务。 nmap -sV -Pn 192.168.50.128 或者扫 nmap -PO 192.168.50.0/24 可以看出来win7(ip为192.168.50.128)的靶机开…...

SpringBoot集成Redis 灵活使用 TypedTuple 和 DefaultTypedTuple 实现 Redis ZSet 的复杂操作

以下是 Spring Boot 集成 Redis 中 TypedTuple 和 DefaultTypedTuple 的详细使用说明&#xff0c;包含代码示例和场景说明&#xff1a; 1. 什么是 TypedTuple 和 DefaultTypedTuple&#xff1f; TypedTuple<T> 接口&#xff1a; 定义了 Redis 中有序集合&#xff08;ZSet…...

7-4 BCD解密

BCD数是用一个字节来表达两位十进制的数&#xff0c;每四个比特表示一位。所以如果一个BCD数的十六进制是0x12&#xff0c;它表达的就是十进制的12。但是小明没学过BCD&#xff0c;把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了&#x…...

Golang改进后的任务调度系统分析

以下是整合了所有改进点的完整代码实现: package mainimport ("bytes""context""fmt""io""log""net/http""sync""time""github.com/go-redis/redis/v8""github.com/robfig/…...

【目标检测】【深度学习】【Pytorch版本】YOLOV2模型算法详解

【目标检测】【深度学习】【Pytorch版本】YOLOV2模型算法详解 文章目录 【目标检测】【深度学习】【Pytorch版本】YOLOV2模型算法详解前言YOLOV2的模型结构YOLOV2模型的基本执行流程YOLOV2模型的网络参数YOLOV2模型的训练方式 YOLOV2的核心思想前向传播阶段反向传播阶段 总结 前…...

NineData云原生智能数据管理平台新功能发布|2025年3月版

本月发布 15 项更新&#xff0c;其中重点发布 3 项、功能优化 11 项、性能优化 1 项。 重点发布 基础服务 - MFA 多因子认证 新增 MFA 多因子认证&#xff0c;提升账号安全性。系统管理员开启后&#xff0c;所有组织成员需绑定认证器&#xff0c;登录时需输入动态验证码。 数…...

破局与赋能:信息系统战略规划方法论

信息系统战略规划是将组织的战略目标和发展规划转化为信息系统的战略目标和发展规划的过程&#xff0c;常见的方法有以下几种&#xff1a; 一、企业系统规划法&#xff08;BSP&#xff09; 1.基本概念&#xff1a;通过全面调查&#xff0c;分析企业信息需求&#xff0c;确定信…...