zoukankan      html  css  js  c++  java
  • C++动态分配内存【转】

    静态与动态内存分配的两个主要区别是:
      1、静态对象是有名字的变量,我们直接对其进行操作。而动态对象是没有名字的变量,我们通过指针间接地对它进行操作。
      2、静态对象的分配与释放由编译器自动处理。程序员需要理解这一点,但不需要做任何事情。相反,动态对象的分配与释放,
            必须由程序员显示地管理,相对来说比较   容易出错,它通过new和delete两个表达式来完成。
    对象的动态分派可通过new表达式的两个版本之一来完成。第一个版本用于分配特定类型的单个对象
      例如: int *pint = new int(1024);
      表达式返回对象在内存中的地址。接着,这个地址被用来初始化指针对象pint。
      new表达式的第二个版本,用于分配特定类型和位数的数组。
      例如:int *pia=new int[4];
      分配了一个含有四个整数元素的数组。不幸的是,我们没有办法给动态分配的数组的每个元素显式地指定一个初始值。
      当用完了动态分配地对象或对象地数组时,我们必须显式地释放这些内存。我们可以通过使用delete表达式地两个版本之一来完成这件事情,
      例如:删除单一对象
      delete pint;
      数组形式地delete表达式为:
      delete [] pia;
      如果忘记删除动态分配地内存,程序就会在结束时出现内存泄漏(memory leak)的问题。
     
  • 相关阅读:
    哲学的初步认识7
    随机法解决TSP问题
    哲学的初步认识6
    dfs+dp思想的结合------hdu1078
    动态规划3-------poj1050
    动态规划2-----hdu1069
    动态规划1-----------poj1080
    js中Math.round、parseInt、Math.floor和Math.ceil小数取整小结【转】
    美术馆
    无刷新评论
  • 原文地址:https://www.cnblogs.com/wintergrass/p/2229351.html
Copyright © 2011-2022 走看看