dev.to | 📄 原文链接 | 2026-09-28 收录

C 语言里的堆与栈:内存到底是怎么分的

来源:dev.to — 2026-09-27

📋 概述

作者从 JavaScript 和 Node.js 转去学 C 时,最先撞上的问题就是内存:查了几篇资料之后他得到一个基本认识——C 的内存分成两块,栈和堆。栈像一张列表,短命的变量、函数和参数住在里面,完全由编译器管理:函数被调用时变量压入,函数结束时内存自动释放;因为分配是顺序进行的所以非常快,但空间有限,申请一大块数据就会撞上栈溢出。堆则像一片巨大的数据池,是没有结构的内存块,专门用于动态分配:要用 malloc 或 calloc 申请,用完必须手动释放,否则就是内存泄漏;它比栈慢一些,因为分配前得先找地方。

🔑 核心要点

💡 金句

栈像一张列表,短命的变量住在里面;堆像一片巨大的池子,你得自己记得把水放掉。
← 返回 dev.to 首页