c++中new和delete的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013230291/article/details/82725047

new 和delete 是运算符,而不是函数。

  • new

new 运算符的格式:
new 类型[初值];
new int; ///开辟一个存放整数的存储空间,返回一个指向该存储空间的地址
new int(100); ///开辟存放一个整数的存储空间,并指定该整数的初值为100,返回存储空间地址
int *p1= new int(100); ///将返回地址赋值给指针变量p
new char[10]; ///开辟存放字符数组的空间,空间大小为10个字符,返回字符数组首元素地址
char *p2=new char[10]; ///将首元素地址赋值给指针变量p2
注:用new分配数组空间时不能指定初值。如果由于内存不足等原因不能正常分配内存空间,则new会返回一个空指针NULL,用户可以根据该指针的值判断是否分配成功。

  • delete

delete 运算符
delete 指针变量;///针对变量
delete []指针变量; ///针对数组
例:
delete p1;
delete []p2; ///在指针变量前面加 [] ,表示对数组空间内存的释放

猜你喜欢

转载自blog.csdn.net/u013230291/article/details/82725047