内存四区

 2023-04-18 10:53:33  阅读 0

在C++中存在着内存四区的说法

1. 代码区:简单来说就是代码存在的区域,特点是只读和共享。

2. 全局区:在函数外部申明和定义的变量存在的区域,空间较大。

3. 栈区:函数中声明定义的变量等存在的区域,空间较小,其内存会在函数中变量声明定义时自动开辟,在函数调用结束后自动回收内存。

4. 堆区:需要手动申请和释放,理论上空间无限大,但是因为需要手动释放内存问题容易造成内存泄漏的问题。

 

在平时的日常使用中,堆区和栈区都会经常使用到,特别是堆区,相比与java等其他高级语言,C和C++中的指针更加危险,因为在编程中经常会使用到循环,若是在一个循环中发生了内存泄漏,若是一次循环就会造成微量内存的泄漏,若是经历成千上万此循环则泄漏的内存就是非常巨大的。

 

但是,指针也具有其他高级语言无法比较的优势,使用指针可以让程序的运行速度更快,因此,在游戏和服务器领域,包括底层的操作系统和驱动等等C和C++依然是主力军。特别是在游戏领域,C++的使用是非常普遍的,优势就在于其对于内存的控制。

 

因此,不能盲目的认为哪个语言好,而应该针对使用场景和实际引用来判断和采取合适的编程语言进行程序开发。

 

在游戏中,地图是非常常见的,在C++中可以采用数组的方式来绘制地图,若是地图比较大,栈区的内存不能够满足需求,此时就需要采用堆区内存来进行处理,在对数据进行处理后,再在合适的时机释放掉申请的内存(若是这些内存没有得到及时的释放,这些内存就会一直被占用,而且内部没有存储有效数据,其它数据也无法使用这些内存,这样就使得计算机的可用内存减小,也就是所谓的内存泄漏)。

上一篇: break和continue
下一篇: 指针和地址
标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码