本帖最后由 张飞电子学院蔡琰 于 2021-4-7 10:53 编辑 对于程序员,一般来说,我们可以简单地理解为内存分为3个部分:堆、栈和静态区;很多人其实不太理解这些概念,也分不清楚,其实堆栈就是栈,而不是堆。堆的英文是heap,栈的英文是stack,通常也叫堆栈。堆和栈都有自己的特性。我们打个比方,一层教学楼,可能有外语教室,允许外语系学生和老师进入;还可能有数学教室,允许数学系学生和老师进入;还可能有校长办公室,允许校长进入。同样,内存也是这样,内存的3个部分,不是所有的东西都能存进去的。 堆:由malloc系列函数或new操作符分配的内存。其生命周期由free或delete决定。在没有释放之前一直存在,直到程序结束。其特点是使用灵活,空间比较大,但容易出错 栈:保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束,这些内存也会自动被销毁。其特点是效率高,但空间大小有限。 静态区:保存自动全局变量和static变量(包括static全局和局部变量)。静态区的内容在整个程序的生命周期内都存在,由编译器在编译的时候分配。 |
998 浏览 0 评论
esp8266作为tcp客户端,服务器主动断开连接后,是会主动重连吗,如何设置不要主动重连呢
1786 浏览 1 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-platform总线驱动简单示例
679 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第六十章 猫脸检测实验
1031 浏览 2 评论
1311 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12775 浏览 31 评论