zoukankan      html  css  js  c++  java
  • C++程序内存分布

    程序中变量的内存分配方式

      程序运行时需要占用多大的空间需要在编译时确定,便于操作系统为程序分配适当的内存空间。

      从静态存储区分配:程序的全局变量和静态变量都在这里分配,且在编译时已经分配好,在程序终止前被操作系统回收。

      在栈上创建:在函数调用时,函数的形参和局部变量都在栈上创建,函数执行完毕时这些内存自动被释放掉。

      从堆(heap)上分配:在程序运行期间,用动态存储分配函数申请和释放的内存

    动态存储分配

      由动态内存管理系统管理的这块内存区域叫做“堆(heap)”:

      当需要动态灵活地分配内存空间时,需要用到动态存储分配 动态分配得到的内存块位于堆中,

      且没有名字 动态存储分配由库函数malloc.h提供 格式:

      p = (double* ) malloc(n*sizeof(double)) C++中动态存储分配由运算符new和delete实现 new和delete完成动态存储分配时,

      可以很好地和构造函数、析构函数进行交互,malloc和free不能自行调用构造函数和析构函数

    具体方法: 指针变量名 = new 类型;

      指针变量名 = new 类型 (初值);

      指针变量名 = new 类型 [元素个数];

      当执行new时,有两件事发生: 大小适当的空间被分配给特定类型的变量;

      该存储空间首地址作为new表达式的返回值,若分配失败则返回0 ;

      基本类型一般不采用动态存储分配

  • 相关阅读:
    书单
    部署邮件系统
    解决配置文件注释太多的方法
    SHELL脚本自动备份
    如何在 Centos7 中修改yum源(三种方法)
    关于油猴子脚本的下载和使用方法
    问卷星全自动刷流量
    实验四、EIGRP 高级实验
    CentOS7修改主机名的三种方法
    IntelliJ IDEA 2018.3 x64的破解和安装
  • 原文地址:https://www.cnblogs.com/Star9527/p/3392960.html
Copyright © 2011-2022 走看看