首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >int‘*p =新int(5);’int*p=新int[5];‘

int‘*p =新int(5);’int*p=新int[5];‘
EN

Stack Overflow用户
提问于 2019-03-23 18:47:12
回答 1查看 5.8K关注 0票数 3

我只需要了解它们之间的区别:

代码语言:javascript
复制
int *p = new int[5];

代码语言:javascript
复制
int *p = new int(5);
EN

回答 1

Stack Overflow用户

发布于 2019-03-23 18:49:07

一个创建一个由五个int组成的数组,并将指向该数组的第一个元素的指针分配给p。未初始化此数组中的任何整数:

代码语言:javascript
复制
int *p = new int[5]; // a pointer to an array of 5 integers

另一个则创建一个int,并将指向该int的指针分配给p。这个整数是用5初始化的

代码语言:javascript
复制
int *p = new int(5); // a pointer to an int

正如tadman在他的评论中指出的那样,本质上,区别在于operator new[]new[]分配数组,必须用delete[]删除,而new分配单个对象,必须用delete删除。如果使用错误的运算符进行删除,所发生的是未定义的行为。当然,除非您是一个库实现者,否则通常应该比newnew[]更喜欢智能指针和库容器。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55317213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档