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

两种方式的比较:

相关推荐
不吃香菜学java2 小时前
Redis的java客户端
java·开发语言·spring boot·redis·缓存
xiaotao1312 小时前
02-机器学习基础: 监督学习——线性回归
学习·机器学习·线性回归
贵沫末2 小时前
python——打包自己的库并安装
开发语言·windows·python
文祐2 小时前
C++类之虚函数表及其内存布局(一个子类继承一个父类)
开发语言·c++
墨黎芜3 小时前
ArcGIS从入门到精通——地图符号、注记的初步使用
学习·arcgis·信息可视化
小李云雾3 小时前
FastAPI重要知识点---中间件(Middleware)
学习·程序人生·中间件·fastapi·middleware
zuowei28893 小时前
华为网络设备配置文件备份与恢复(上传、下载、导出,导入)
开发语言·华为·php
小夏子_riotous3 小时前
Docker学习路径——3、常用命令
linux·运维·服务器·学习·docker·容器·centos
xiaohe073 小时前
超详细 Python 爬虫指南
开发语言·爬虫·python
嗑嗑嗑瓜子的猫3 小时前
Java!它值得!
java·开发语言