zoukankan      html  css  js  c++  java
  • C++Review13_new和delete用法

    1、new 一个对象:

     1 
      class Solution{
      public: 2 Solution(){ 3 4 } 5 6 Solution(int value){ 7 this->value = value; 8 } 9 }; 10 int main() 11 { 12 Solution * sol_ptr1; 13 Solution * sol_ptr2; 14 15 sol_ptr1 = new Solution(11); 16 sol_ptr2 = new Solution; 17 18 cout<<"sol_ptr1 "<<sol_ptr1->value<<endl; 19 cout<<"sol_ptr2 "<<sol_ptr2->value<<endl; 20 21 delete sol_ptr1; 22 delete sol_ptr2; 23 sol_ptr1 = nullptr; 24 cout<<sol_ptr1<<endl; 25 26 }

    2、new 一个单变量:

    int * ptr = new int(5) ; //括号表示,同时将整数赋值为5;

    int * ptr = new int;      //这样会产生一个随机值;

     

    3、new 一个一维数组:

    一维数组new的时候要指定数组大小,而且可以使用{}进行初始化;

    二维数组的动态空间申请、释放比较麻烦。以后再讨论;

    3、delete用法:

    一般是  delete 指针变量名;

    或者是  delete [] 指针变量名; //对数组空间的释放;

    4、其他:

    new内存分配失败时,会抛出bac_alloc异常,它不会返回NULL;malloc分配内存失败时返回NULL。

    new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换,故new是符合类型安全性的操作符。

    相关链接:

    c++中new与delete的用法总结:https://blog.csdn.net/zcawesome/article/details/78777832

    C++中为二维数组开辟空间,并释放空间:https://blog.csdn.net/feilong1lantern/article/details/50278593

  • 相关阅读:
    AngularJS之页面跳转Route
    ajax上传图片的本质
    JQuery-基础学习1
    Java跨域问题的处理详解
    红黑树
    查找算法
    八大排序算法
    linux下安装nginx
    libevent 和 libev 提高网络应用性能
    Linux下libevent安装与示例
  • 原文地址:https://www.cnblogs.com/grooovvve/p/12370366.html
Copyright © 2011-2022 走看看