zoukankan      html  css  js  c++  java
  • 堆中的变量、对象的使用

    堆~变量:

     C++中创建动态指针:

    int *p;    //定义整型指针变量p

    p = new int;  //new创建一个int类型的内存区域,然后将该区域的内存地址赋给指针变量p,p占用4个字节(int型嘛)

    或者  int *p = new int;

    释放:delete p;    //将动态内存释放,但是p指针变量还在,并且还指向原来的位置,在又重新创建同一类型的(不同类型的也有可能)堆空间时,p默认还会指向新建的堆,这样会造成两个指针同时指向同一段地址,所以需将p指向空指针(空指针的不当使用可能会造成系统崩溃,也是一种防止调试错误的方法)。但不能删除一个没有指向任何地址的指针,可以删除空指针

    p=0;    //记得要跟随在  delete p; 之后!!

    C中创建堆:

    void *malloc(size_t size);    // 参数:size_字节数       返回值:成功返回分配空间的首地址,失败返回 NULL

    释放:void free(void *ptr);    //功能:释放由 malloc、calloc、realloc 分配的空间参数, ptr_:空间的首地址 ,无返回值

    若没有删除动态指针就重新赋值,或者没有使用完之后没有释放,就会造成内存泄漏。

    堆~对象

    在堆中创建一个对象:Human *p = new Human;    //Human 是对象

    在堆中删除一个对象:delete p;

    访问堆中的的数据成员: (*p).get();    //get()是Human中的一个方法

             或者  p->get();

    存储在堆中的对象,需要程序员自行对其所占用内存释放后,系统才对内存回收(执行析构函数),否则得等到程序结束。

  • 相关阅读:
    01、启动优先和安全设置
    5、bam格式转为bigwig格式
    1、蛋白质二级结构预测方法
    12、IGV-Integrative Genomics Viewer
    docker-compose 工具安装
    docker-compose.yml 语法说明
    docker 镜像和容器的批量清理
    rancher 笔记 之 rancher应用中心
    golang 学习笔记
    docker registry 搭建
  • 原文地址:https://www.cnblogs.com/simonLiang/p/5901088.html
Copyright © 2011-2022 走看看