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:尝试用指针替换柔性数组

两种方式的比较:

相关推荐
郝学胜-神的一滴3 分钟前
OpenGL的glDrawElements函数详解
开发语言·c++·程序人生·游戏·图形渲染
map_vis_3d5 分钟前
JSAPIThree LODModel 性能优化学习笔记:细节层次模型加载
笔记·学习·3d
moxiaoran575313 分钟前
Go语言结构体
开发语言·后端·golang
wearegogog12320 分钟前
基于C# WinForm实现的带条码打印的固定资产管理
开发语言·c#
Lvan的前端笔记24 分钟前
python:深入理解 Python 的 `__name__ == “__main__“` 与双下划线(dunder)机制
开发语言·python
MarkHD37 分钟前
智能体在车联网中的应用:第9天 核心工具链与仿真世界:SUMO交通仿真入门——从安装到构建你的第一个虚拟十字路口
学习
lxh011341 分钟前
2025/12/18 学习总结
学习
董世昌411 小时前
什么是扩展运算符?有什么使用场景?
开发语言·前端·javascript
lsx2024061 小时前
C++ 重载运算符和重载函数
开发语言
json{shen:"jing"}1 小时前
1-C语言的数据类型
c语言·c++·算法