提问者:小点点

一维动态数组,括号


假设我有一个一维动态数组,我想用斐波那契数来填充。

用户输入大小为15,所以我想要前15个斐波那契数字。

所以我的问题是:

int* arr = new int [size];

还有这个

int* arr = new int [size]{};  

{}做什么?有什么区别?


共1个答案

匿名用户

实际上,paranthesis版本确保所有值都初始化(int将初始化为零),否则该数组可能会被内存垃圾填满,因为它只是给了您一个内存块,而没有对它做任何事情。 因此,偏执狂版本可能会稍微慢一些,但只有当您经常调用它或使用兆字节的大数组时,这才会有影响。

请注意,通常在调试模式下,您将得到一个干净的数组。

更多细节:在初始化数组时使用(或不使用)括号(在这种情况下,它是()还是{}无关紧要,因为两者都可以用于初始化没有自定义构造函数的类型或类)。