带或不带括号的新运算符[重复]

问题描述 投票:0回答:1

使用

new
运算符创建带尾括号和不带尾括号的数组之间的主要区别是什么?也就是以下声明的区别

void* ptr = new int[5]();

void* ptr = new int[5];
c++ dynamic-memory-allocation new-operator
1个回答
1
投票

新表达式的详细信息解释于此处。在你的例子中有

new type new-initializer

在这两种情况下,类型都是 5 个整数的数组。

()
就是
new-initializer
。初始化的详细信息在本节中进行了解释。对于整数,默认初始化(无
()
)意味着元素未初始化,值初始化意味着元素使用
0
值进行初始化。

© www.soinside.com 2019 - 2024. All rights reserved.