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

What does the () at the end of dynamic array allocate mean?

本文关键字:是什么 意思 数组 分配 动态      更新时间:2023-10-16

我在一个不同的问题中看到了一些我以前没有见过的例子。

new int[m_size]();
               ^^

我一直看到和使用new int[m_size]版本,但没有一个在末尾有()

两个字:Value Initialization

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

1:初始化式为一组空括号的对象,即(),应进行值初始化。($8.5/7)

这意味着所有的元素都将是zero initialized,类似于calloc(o,sizeof(int)),在这个调用中,我们使用0在堆上初始化单个整数