当前位置: 首页 > news >正文

C语言内存管理

一、C语言操作内存的方式

  1. 用变量名访问内存
  2. 用指针间接访问内存

二、栈

栈是一种数据结构,是一种内存管理方式,C语言用栈来保存局部变量
栈的特点是后进先出,相当于一端堵死的管子,只能从一个口出入。
当C语言代码中定义一个局部变量,编译器就会在栈中给该变量分配一段空间。当局部变量消亡时,对应栈会自动释放空间。
注意:栈是有大小的,所以==定义局部变量时不能定义太大!!!==比如,int a[10000];

三、堆(heap)

堆也是一种内存管理方式,特点是随时申请、释放且大小随意
堆内存是操作系统划归给堆管理器来管理的,可以用API(malloc和free)来使用堆内存。

  • 什么时候使用堆内存?

需要内存容量较大,需要反复使用及释放的场景
int a[10000];就需要用堆内存!!!

  • 堆内存申请函数malloc(), calloc(), realloc()

堆内存申请时必须给定大小,如果要变只能通过realloc()函数更改。

malloc(10*sizeof(int));		malloc(40);
calloc(10, sizeof(int));	malloc(10, 4);
  • 堆内存释放函数free()
http://www.xdnf.cn/news/33157.html

相关文章:

  • 6. 话题通信 ---- 使用自定义msg,发布方和订阅方cpp,python文件编写
  • 发动机悬置橡胶弹性体试验机
  • Dify快速入门之chatflow
  • 常见设计模式
  • 【对Linux文件权限的深入理解】
  • 针对MCP认证考试中的常见技术难题进行实战分析与解决方案分享
  • 清华《数据挖掘算法与应用》K-means聚类算法
  • 考研408操作系统文件管理——4.2目录系统详解
  • Java PrintStream 类深度解析
  • QT聊天项目DAY06
  • 什么是事件循环
  • 2025年渗透测试面试题总结-拷打题库05(题目+回答)
  • 大学第一次笔记本清灰
  • Zephyr、FreeRTOS、RT-Thread 邮箱(Mailbox)对比分析
  • 【信息系统项目管理师】高分论文:论信息系统项目的采购管理(“营业工单系统”项目)
  • MySql Innodb详细解读
  • 【预告】【k8s系列6】RKE搭建Kubernetes集群
  • Codeforces Educational Round 177 Div. 2 【B题,C待补
  • Elasticsearch:使用 ES|QL 进行搜索和过滤
  • 嵌入式linux系统中内存管理的方法与实现
  • EKF公式推导
  • 工业级向量检索核心技术:IVF-PQ原理与全流程解析
  • [Android] 豆包爱学v4.5.0小学到研究生 题目Ai解析
  • 【IaaS自动化运维】Ansible与Terraform集成
  • 【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(16):ReactExecutor
  • 【重学Android】02.Java环境配置的一些分享
  • 高精度算法(加、减、乘、除、阶乘和)​
  • QML Rectangle 组件
  • 直线轴承常规分类知多少?
  • 洛谷P1177【模板】排序:十种排序算法全解(1)