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

两种方式的比较:

相关推荐
凉、介12 分钟前
深入理解 ARMv8-A|处理器模式与寄存器
笔记·学习·嵌入式·arm
z2005093012 分钟前
【linux学习】深入理解linux文件I/O,从C标准库到内核态
linux·学习·操作系统
郭涤生16 分钟前
C++ 高性能编程最佳实践清单
开发语言·c++
烛衔溟17 分钟前
TypeScript 类的静态成员与静态方法
开发语言·javascript·typescript
Nile17 分钟前
解密Palantir系列一:4. Ontology 不是哲学
开发语言·前端·javascript
罗超驿1 小时前
15.JavaScript 函数与作用域完全指南:语法、参数、表达式与作用域链实战
开发语言·前端·javascript
.千余1 小时前
【C++】C++类与对象2:C++构造函数、运算符重载与流输入输出全面解析
c语言·开发语言·前端·c++·经验分享
郭涤生1 小时前
C++ 高性能状态机
开发语言·c++
阿文的代码库1 小时前
康威尔生命游戏规则介绍与学习
学习
我的xiaodoujiao1 小时前
API 接口自动化测试详细图文教程学习系列24--如何用Pytest去设计接口测试用例并执行
python·学习·测试工具·pytest