CC++编程中,有哪些内存管理要点可以总结?

2026-04-29 12:292阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3076个文字,预计阅读时间需要13分钟。

C/C++编程中,有哪些内存管理要点可以总结?

前言:我们最初熟知的内存开辟方式:int val=20;在栈空间上开辟4个字节。在栈空间上开辟10个字节连续的空间,上言开辟空间的方式有两个特点:空间大小是固定的。

前言

我们最初熟知的内存开辟方式:

  • int val = 20: 在栈空间上开辟4个字节
  • char array[10]: 在栈空间上开辟10个字节的连续空间

上述开辟空间的方式有两个特点:

  • 空间开辟大小是固定的。
  • 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。

但是对于空间的需求,不仅仅是上述的情况,有时候我们需要的空大小在程序运行时才能知道,那此时静态的开辟空间的方式就不能满足了,我们这时候只能试试动态内存开辟。

这篇博客就来带大家梳理一下C/C++中的内存管理。

一:C/C++内存分布

对内存分段是计算机的管理机制

1.栈又叫堆栈,存放非静态局部变量、函数参数和返回值等等,栈是向下增长的。,处理器的指令集中、效率高,但是分配内存的容量有限。(函数执行结束后这些存储单元自动释放)
2.内存映射段是高效的IO映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。
3.堆用于程序运行时动态内存分配,堆是向上增长的。(一般由人为分配释放,若没有人为释放则程序结束时可能由OS回收。)
4.数据段存储全局数据、静态数据。(程序结束后由系统自动释放)
5.代码段存储可执行的代码、只读常量。

阅读全文

本文共计3076个文字,预计阅读时间需要13分钟。

C/C++编程中,有哪些内存管理要点可以总结?

前言:我们最初熟知的内存开辟方式:int val=20;在栈空间上开辟4个字节。在栈空间上开辟10个字节连续的空间,上言开辟空间的方式有两个特点:空间大小是固定的。

前言

我们最初熟知的内存开辟方式:

  • int val = 20: 在栈空间上开辟4个字节
  • char array[10]: 在栈空间上开辟10个字节的连续空间

上述开辟空间的方式有两个特点:

  • 空间开辟大小是固定的。
  • 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。

但是对于空间的需求,不仅仅是上述的情况,有时候我们需要的空大小在程序运行时才能知道,那此时静态的开辟空间的方式就不能满足了,我们这时候只能试试动态内存开辟。

这篇博客就来带大家梳理一下C/C++中的内存管理。

一:C/C++内存分布

对内存分段是计算机的管理机制

1.栈又叫堆栈,存放非静态局部变量、函数参数和返回值等等,栈是向下增长的。,处理器的指令集中、效率高,但是分配内存的容量有限。(函数执行结束后这些存储单元自动释放)
2.内存映射段是高效的IO映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。
3.堆用于程序运行时动态内存分配,堆是向上增长的。(一般由人为分配释放,若没有人为释放则程序结束时可能由OS回收。)
4.数据段存储全局数据、静态数据。(程序结束后由系统自动释放)
5.代码段存储可执行的代码、只读常量。

阅读全文