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;      //这样会产生一个随机值;

C++Review13_new和delete用法

 

 C++Review13_new和delete用法

 

 

 

 

3、new 一个一维数组:

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

C++Review13_new和delete用法

C++Review13_new和delete用法

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

 

 

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

 

原文链接: https://www.cnblogs.com/grooovvve/p/12370366.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++Review13_new和delete用法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/332151

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午6:22
下一篇 2023年3月1日 下午6:22

相关推荐