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

两种方式的比较:

相关推荐
mjhcsp13 小时前
P3145 [USACO16OPEN] Splitting the Field G(题解)
开发语言·c++·算法
rit843249913 小时前
UVE算法提取光谱特征波长的MATLAB实现与应用
开发语言·算法·matlab
StandbyTime13 小时前
C语言学习-菜鸟教程C经典100例-练习40
c语言
o(╥﹏╥)13 小时前
Learn how Gen AI 学习笔记
人工智能·笔记·学习
阿蒙Amon13 小时前
C#每日面试题-简述反射
开发语言·面试·c#
越甲八千13 小时前
python socket
开发语言·python
缺点内向13 小时前
告别“复制粘贴”:用C#和模板高效生成Word文档
开发语言·c#·word
edisao13 小时前
【开源】轻量级 LLM 文本质检工具:精准识别核心概念缺失,支持动态别名 + 反馈闭环
大数据·开发语言·人工智能·经验分享·gpt·架构·开源
进阶小白猿13 小时前
Java技术八股学习Day23
java·网络·学习
臭东西的学习笔记13 小时前
论文学习——酶动力学参数预测的机器学习模型研究进展
人工智能·学习·机器学习