C++内存的分区

前言

        在 C++ 中,内存分区则是理解程序运行机制的关键密码。它不仅决定了数据的存储方式、生命周期,还与程序的性能、稳定性紧密相连。从全局变量在数据区的持久驻扎,到局部变量在栈区的短暂停留,再到动态分配内存于堆区的灵活管控,每一个分区都有着独特的使命与特性,接下来就让我为你介绍 C++ 的内存分区。

一. 分区

        内存一般分为四个区:堆区、栈区、全局区(静态区)、代码区;

        在编写程序时,需要占用的是5个部分:堆、栈、全局(静态)、文字常量、代码区

二. 各区的功能

1. 栈区

        由编译器自动分配释放。栈区空间通常是连续且相对较小的,所以它适合存放一些生命周期较短的变量,例如:函数的参数值、局部变量值、返回地址以及用于管理函数调用的其他信息。运行时可读可写;由于其连续性数据的访问速度相当快,能很好地满足函数快速执行过程中的数据读写需求,为 C++ 程序的高效运行默默助力。

        面向对象:我们可以通过重载运算符new来实现仅在栈区申请对象,栈区申请内存使用函数 alloca()

        示例代码:

#include 
using namespace std;
void* operator new(size_t size) {
    void* ptr = alloca(size); // alloca在栈区分配内存
    cout <<

你可能感兴趣的:(c++,开发语言)