c++ - 一维动态数组,括号
问题描述
假设我有一个一维动态数组,我想用斐波那契数填充。
用户输入大小为 15,所以我想要前 15 个斐波那契数。
所以我的问题是:
int* arr = new int [size];
和这个
int* arr = new int [size]{};
做{}
什么?,有什么区别?
解决方案
实际上,括号版本确保所有值都被初始化(整数将被初始化为零),否则该数组可能会被内存垃圾填充,因为它只是给了你一个内存块,而不是对它做任何事情。结果,括号版本可能会慢一点,但这只有在您经常调用它或使用兆字节大数组时才有意义。
请注意,通常在调试模式下,无论如何您都会得到一个干净的数组。
更多细节: 在初始化数组时使用(或不使用)括号(在这种情况下它是 () 还是 {} 无关紧要,因为两者都可用于初始化没有自定义构造函数的类型或类)。
推荐阅读
- unity3d - 如何正确使用播放器滑动长度(以像素为单位)来移动 Unity 中的 UI 元素?
- sql - Oracle SQL 窗口优化/可能的 Oracle PL/SQL 解决方案?
- fonts - 拒绝加载字体 '
' 因为它违反了以下内容安全策略指令:“font-src *” - android - 如何使用从适配器到其他类的捆绑包?
- powershell - Power Shell 脚本 SMTP 电子邮件问题
- javascript - webpack style-loader 将 css 显示为 style 标签内的 base64 编码字符串
- java - listview 是空的,我发现一个错误,但我无法解决它
- javascript - 无法使用 AngularJS 1 在 routeProvider 中使用查询参数进行路由
- java - 根据正确的月份在 ListView 中显示值
- python - 为指定的 n 创建所有布尔组合