动态数组分配结尾的()是什么意思?

时间:2011-04-05 12:30:24

标签: c++ arrays memory-management

我在以前没见过的另一个问题中看到了一些如下例子。

new int[m_size]();
               ^^

我一直看到并使用版本new int[m_size],但最后没有使用()版本。

2 个答案:

答案 0 :(得分:12)

两个字:Value Initialization

new int[m_size]();数组元素将通过写()进行零初始化,因为()意味着值初始化。 1 (原始类型的零初始化)

1:一个对象,其初始化程序是一组空的括号,即(),应进行值初始化。 ($ 8.5 / 7)

答案 1 :(得分:2)

它表示所有元素都是zero initialized,类似于calloc(o,sizeof(int)),使用此calloc,您可以使用0初始化堆上的单个整数