首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >new或new[]运算符

new或new[]运算符
EN

Stack Overflow用户
提问于 2011-03-20 22:13:07
回答 2查看 434关注 0票数 8

考虑以下代码:

代码语言:javascript
运行
复制
typedef  SomeType type_t[2];
SomeType * arr1 = new type_t; //new or new[] ???
type_t * arr2 = new type_t[3]; //new or new[] ???

根据标准,在第一和第二种情况下将调用哪个版本的new ( newnew[]),以及如何删除arr1arr2 (使用deletedelete[])?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-20 22:19:40

第一种情况分配一维数组,第二种情况分配二维数组。这两个都必须通过delete[]发布,否则会得到未定义的行为。

票数 9
EN

Stack Overflow用户

发布于 2011-03-20 22:26:48

它在这两种情况下都将使用new[]。您可以自己验证这一点,方法是为SomeType定义operator new[]并在屏幕上打印一些内容。您将看到它在两种情况下都会被打印出来。

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

https://stackoverflow.com/questions/5368988

复制
相关文章

相似问题

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