zoukankan      html  css  js  c++  java
  • c++的内存分配

      c++的三种内存分配方式:

      1.从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。全局变量,static变量就是这种分配方式。

      2.在栈上创建的内存。在执行函数内部局部变量的存储单元在栈上创建,函数执行结束时伴随着局部变量生命周期的结束,这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

      3.堆上分配内存,也就是动态内存分配。用new或者malloc申请之后应该立马给指针赋初值,防止将未被初始化的内存作为右值使用;避免数组或指针的下标越界,特别要当心发生“++”或者“--”操作;动态内存的申请与释放必须配对,防止内存泄漏;用free或delete释放了内存之后,立即将指针设置为NULL,防止产生“野指针”。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定,使用非常灵活。(int *pArray;   int MyArray[6];    pArray = &MyArray[0];)如果在申请动态内存时找不到足够大的内存块,malloc和new将返回NULL指针,判断指针是否为NULL,如果是则马上用return语句终止本函数,或者马上用exit(1)终止整个程序的运行,为new和malloc设置异常处理函数。

  • 相关阅读:
    命令行工具--netstat
    Man手册--nmap
    bc -l 对于 %取模计算出错
    离散对数和原根 欧拉定理证明
    bc-win32-power-echo-vim-not-work
    2010版EXCEL下方sheet工作表隐藏了
    word多出空标题,样式是列出段落
    plantuml
    久石让《龙猫》豆豆龙 钢琴视奏版
    神奇校车 = topsage
  • 原文地址:https://www.cnblogs.com/begoogatprogram/p/4635896.html
Copyright © 2011-2022 走看看