• C++系列之new 和 delete 的使用


      new和delete可以有效、直接的进行动态内存的分配和释放。

      运算符new返回指定类型的一个指针,如果分配失败(如没有足够的内存空间)时,则返回0.

    如:  

    1 double *p;
    2 p = new double;
    3 *p = 3.1;     //将值存放在开辟的单元中

    系统自动根据double类型的空间大小开辟内存单元,并将地址放在指针p中。

    当然,也可以在开辟内存单元时对单元里的值进行初始化。

    则,上述代码等价于:

    1 double *p;
    2 p = new double(3.1);

      

      运算符delete是释放new请求的内存单元。

      delete p将指针变量p指向的内存单元释放,指针变量p仍然有效,它可以重新指向另一个内存单元。

      

      new也可以为数组分配内存单元,当释放时,也可以告诉delete数组有多少个。

    如:

    1 int *p;
    2 p = new int[10];
    3 delete [10]p; //告诉delete数组有多少个元素,或delete []p;

     

    例子:

      

     1 #include <iostream>
     2 #include <cstring>
     3 
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     char *p = new char[6];
     9 
    10     strcpy(p,"Hello");
    11     cout << p << endl;
    12     delete[] p;
    13     cout << p << endl;
    14 
    15     return 0;
    16 }


    运行结果:

      

    运行环境:

      ubuntu 12.10

      gcc版本 4.7.2

  • 相关阅读:
    chrome、firefox、IE中input输入光标位置错位解决方案
    IE兼容opacity
    Linux下redis5的安装及伪分布式集群搭建
    Linux文件编辑命令详细整理
    saltstack
    redis集群
    系统调优
    centos7 telnet 登录升级ssh
    keepalive简单高可用 ha
    docker
  • 原文地址:https://www.cnblogs.com/luciaark/p/luciaark.html
Copyright © 2020-2023  润新知