zoukankan      html  css  js  c++  java
  • 内存释放

    1.内存分为三个区域:全局变量区,栈区,堆区
      全局变量区:专门存放全局变量
      栈区:分配在栈上的变量可被栈管理器自动释放
      堆区:堆上的变量内存必须人工去释放
    2.指针类变量
      指针类的变量在声明为全局变量时被初始化为空值,在声明为局部变量时则初始化为一个随机数,对于指针类型一般
      要使用一些代码来完成内存分配
    3.动态分配内存的函数和过程
      procedure GetMem(Var P: Pointer; Size: Integer);
      分配大小为Size字节的内存块,并让P指向它
      procedure AllocMem(Size: Cardinal):Pointer;
      分配大小为Size字节的内存块并始初化为零,并返回地址指针
      procedure ReallocMem(Var P: Pointer; Size: Integer);
      在途中更改先前用GetMem或者AllocMem分配的内存大小
      procedure FreeMem(Var P: Pointer);
      使用GetMem和AllocMem分配的内存都应该用FreeMem释放
      Procedure New(Var P: Pointer);
      用New分配的内存大小由参数P的数据类型确定,因此,不要使用它给无类型指针变量分配内存.
      Procedure Dispose(Var P: Pointer);
      释放该内存块使用dispose
  • 相关阅读:
    桥接模式(Bridge)
    Python中文件操作
    Python中字符的编码与解码
    反转部分单向链表
    删除链表的中间节点和a/b处的节点
    链表中删除倒数第K个节点
    如何实现链表的逆序
    Python高阶函数及函数柯里化
    Python函数作用域
    Python函数参数与参数解构
  • 原文地址:https://www.cnblogs.com/shuaixf/p/1327978.html
Copyright © 2011-2022 走看看