首页 > 解决方案 > 一维动态数组,括号

问题描述

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

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

所以我的问题是:

int* arr = new int [size];

和这个

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

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

标签: c++

解决方案


实际上,括号版本确保所有值都被初始化(整数将被初始化为零),否则该数组可能会被内存垃圾填充,因为它只是给了你一个内存块,而不是对它做任何事情。结果,括号版本可能会慢一点,但这只有在您经常调用它或使用兆字节大数组时才有意义。

请注意,通常在调试模式下,无论如何您都会得到一个干净的数组。

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


推荐阅读