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

两种方式的比较:

相关推荐
2301_80904942几秒前
WSL无法打开gui界面时,以及安装东西分两种
学习
CN-Dust7 分钟前
【C++专题】格式化输出与输入
开发语言·c++·算法
AI人工智能+电脑小能手10 分钟前
【大白话说Java面试题】【Java基础篇】第19题:HashMap的key如何减少发生哈希冲突
java·开发语言·后端·面试·哈希算法·hash-index·hash
Titan202412 分钟前
C++位图学习笔记
c++·笔记·学习
念恒1230612 分钟前
Python(运算与操作)
python·学习
im_AMBER17 分钟前
Leetcode 162 除了自身以外数组的乘积 | 接雨水
开发语言·javascript·数据结构·算法·leetcode
是个西兰花25 分钟前
C++:异常
开发语言·c++·异常
AI人工智能+电脑小能手29 分钟前
【大白话说Java面试题】【Java基础篇】第18题:HashMap底层是如何扩容的
java·开发语言·面试·散列表·hash-index·hash
从负无穷开始的三次元代码生活30 分钟前
Docker生产环境实战从0-1学习基础指南——快速掌握
学习·docker·容器·云技术
AbandonForce32 分钟前
Map类:pair键值对|map的基本操作|operator[]
开发语言·c++·算法·leetcode