码迷,mamicode.com
首页 > 编程语言 > 详细

C++之new和delete操作符

时间:2017-06-04 12:55:20      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:构造函数   back   nbsp   c++   space   程序   动态   构造   blog   

在C语言中的动态分配和释放内存的函数是malloc calloc 和 free , 而在C++中要用 new new[] delete delete[] 来申请动态空间和释放空间。

注意:的是new、new[]、delete和delete[]是操作符,而非函数;new和delete也是C++的关键字。

操作符new用于动态分配单个空间,而new[]则是用于动态分配一个数组,操作符delete用于释放由new分配的空间,delete[]则用于释放new[]分配的一个数组

下面是简单的实例代码

using namespace std;

int main()
{
   int *p = new int (5);
   int *q = new int[10];
   *q = 80;
   q++;
   *q = 293;
   cout << *q << endl;
   cout << *p << endl;
   delete p;
   return 0;
}

运行结果

293
5

 

为了避免内存泄露,通常new和delete、new[]和delete[]操作符应该成对出现,并且不要将这些操作符与C语言中动态分配内存和释放内存的几个函数一起混用。建议在编写C++程序时尽量使用new、new[]、delete和delete[]操作符进行动态内存分配和释放,而不要使用C语言中内存分配和释放的函数,这是因为new、new[]、delete和delete[]操作符可以使用C++的一些特性,如类的构造函数和析构函数,能够更好地管理C++程序的内存。

C++之new和delete操作符

标签:构造函数   back   nbsp   c++   space   程序   动态   构造   blog   

原文地址:http://www.cnblogs.com/wanghuixi/p/6939962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!