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 ;

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

  • 相关阅读:
    typescript提示implicitly has an 'any' type 问题
    element-ui中的table可分页多选功能-记住上一页勾选数据
    CSS加载会阻塞页面显示?
    网络流(EK算法)
    网络流(dinic算法)
    洛谷p1120小木棍(剪枝优化)
    三种背包模板
    HDU2089-不要62(数位dp)
    windy数(数位dp)
    素数判定(待填坑)
  • 原文地址:https://www.cnblogs.com/Star9527/p/3392960.html
Copyright © 2011-2022 走看看