程序的内存分配

    技术2024-07-24  10

    栈区

    由编译器自动分配释放 通常存放函数的参数值、局部变量值 类似堆栈

    堆区

    可手动分配释放,也可待程序结束后由OS释放 类似链表

    全局区(静态区)

    程序结束后由OS释放 通常存放全局变量、静态变量static

    文字常量区

    程序结束后由OS释放 存放常量字符串

    程序代码区

    存放函数体二进制代码

    案例

    int num1 = 0 //全局初始化区(全局变量) int *ptr1; //全局未初始化区 int main(){ int num2; //栈区(主函数参数) char str[] = "老九君"; //栈区 char *ptr2; //栈区 char *ptr3 = "老九君"; //老九君:常量区 //ptr3:栈区 static int num3 = 1024; //全局初始化区 ptr1 = new int[10]; //ptr在栈区 ptr2 = new char[20]; //new在堆区 return 0; }
    Processed: 0.013, SQL: 9