前言:相比较于C语言使用malloc()
函数和free()
函数来管理动态内存,C++引入了new
和delete
关键词来管理动态内存,而new
和delete
相比较于malloc()
函数和free()
函数有什么不同了。
1 new和delete基本语法
在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除。在C语言中是利用库函数malloc
和free
来分配和撤销内存空间的。C++提供了较简便而功能较强的运算符new
和delete
来取代malloc()
和free()
函数。
注意: new
和delete
是运算符,不是函数,因此执行效率高。尽管C++为了与C兼容依旧保存malloc()
函数和free()
函数,但是不建议用户在C++重使用。
new int;
//开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)
new int(100);
//开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址
new char[10];
//开辟一个存放字符数组(包括10个元素)的空间,返回首元素的地址
new int[5