C++Review13_new和delete用法

1、new 一个对象:

 1 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

猜你喜欢

转载自www.cnblogs.com/grooovvve/p/12370366.html