C语言学习/复习34--内存相关笔试题/C与C++的内存/柔性数组

一、动态内存管理笔试题

1.值传递

注意事项1:指针的地址传递需要将指针的地址用二级指针接收,本题属于值传递不属于地址传递

修改:1改为地址传递,2释放malloc()函数申请的空间

注意事项2:printf()字符串时,参数实际是字符串首元素的地址

2.在栈上申请空间

注意事项1:函数相关的存于栈上,出了函数后栈中的数据自动销毁

修改:static修饰后变为静态变量存于静态区不存于栈上,直到程序结束才会释放

3.malloc()与free()

修改:添加与malloc()相配的free()手动释放堆上的空间

4.free()与指针置空

修改:free()后记得将指针置空,否则空间还给内存但指针还指向一块没有权限操控的空间

二、C/C++程序的内存开辟

1.栈、堆、静态区

注意事项1:static修饰局部变量后生命周期变长

三、柔性数组

1.定义:

2.两种案例:

3.柔性的特点:

实例1:柔性数组与malloc(),realloc()

实例2:尝试用指针替换柔性数组

两种方式的比较:

相关推荐
盐水冰几秒前
【烘焙坊项目】后端搭建(13)- 数据统计--图形报表
java·后端·学习·spring
野犬寒鸦2 分钟前
从零起步学习计算机操作系统:I/O篇
服务器·开发语言·网络·后端·面试
朗迹 - 张伟3 分钟前
UE5 UMG学习笔记
笔记·学习·ue5
姓刘的哦6 分钟前
Qt实现蚂蚁线
开发语言·qt
jinanwuhuaguo7 分钟前
AI应用开发与自动化工具全景解析:Coze、Dify、FastGPT、n8n、MCP、Manus、Claude Code、OpenClaw
人工智能·学习·重构·新人首发·openclaw
布局呆星9 分钟前
Python 文件操作教程
开发语言·python
Elnaij14 分钟前
从C++开始的编程生活(23)——哈希表
开发语言·c++
EnglishJun16 分钟前
ARM嵌入式学习(六) --- ARM基础介绍和相关专业术语讲解
arm开发·学习
英英_18 分钟前
优化 MATLAB MapReduce 程序性能:从基础调优到进阶提速
开发语言·matlab·mapreduce
LSL666_24 分钟前
BaseMapper——新增和删除
java·开发语言·mybatis·mybatisplus