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

两种方式的比较:

相关推荐
ID_1800790547313 小时前
Python采集京东商品详情:基于官方API的规格与价格获取
开发语言·数据库·python
非凡ghost13 小时前
Ookla Speedtest安卓版(网速测试工具)
android·windows·学习·智能手机·软件需求
大猫子的技术日记13 小时前
Playwright 自动化测试入门指南:Python 开发者的端到端实战
开发语言·人工智能·python
在黎明的反思14 小时前
文件级建议性锁函数flock
c语言·c++
韩立学长14 小时前
【开题答辩实录分享】以《夏日计划露营地管理系统的设计与实现》为例进行选题答辩实录分享
开发语言·python
Zachery Pole14 小时前
JAVA_03_运算符
java·开发语言·前端
毕设源码-邱学长14 小时前
【开题答辩全过程】以 基于java的网上书店管理系统为例,包含答辩的问题和答案
java·开发语言
Gogo81614 小时前
同一个 new,不同的世界:Java 与 TypeScript 对象创建机制的降维打击
java·开发语言·typescript
近津薪荼14 小时前
dfs专题7—— 全排列
c++·学习·算法·深度优先