C++内存分配的方式

    最近遇到一个网友的问题C++内存分配的方式有哪些我随口说不就是两种静态内存分配和动态内存分配。

    我的理解是在编程过程中由编译器指定的栈自由存储区常量存储区其实对应的是代码段和数据段可以说的上是静态分配的而动态内存分配是运行的过程中当系统需要分配一块内存通过调用new/delete或者malloc/free。通过查找资料new/delete无外乎最终调用malloc/free辅助内存的分配。所以很多的资料上面提及的C++分配内存的方式和C的不一样其实是有误解的

    通过查阅资料发现我的观点也是片面的应该还有静态内存存储区存储静态变量。

内存的三种分配方式: 1. 从静态存储区分配:此时的内存在程序编译的时候已经分配好并且在程序的整个运行期间都存在。全局变量static变量等在此存储。 2. 在栈区分配:相关代码执行时创建执行结束时被自动释放。局部变量在此存储。栈内存分配运算内置于处理器的指令集中效率高但容量有限。 3. 在堆区分配:动态分配内存。用new/malloc时开辟delete/free时释放。生存期由用户指定灵活。但有内存泄露等问题。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。