gpt4 book ai didi

c++ - 如何在 C++ 中使用 new 运算符初始化内存?

转载 作者:IT老高 更新时间:2023-10-28 11:30:05 26 4
gpt4 key购买 nike

我刚开始接触 C++,我想养成一些好习惯。如果我刚刚使用 new 运算符分配了一个类型为 int 的数组,如何在不自己循环遍历它们的情况下将它们全部初始化为 0?我应该只使用 memset 吗?有没有“C++”的方式来做到这一点?

最佳答案

这是一个令人惊讶的 C++ 鲜为人知的特性(这一点可以从没有人给出这个答案的事实中得到证明),但它实际上具有用于对数组进行值初始化的特殊语法:

new int[10]();

请注意,您必须使用空括号——例如,您不能使用 (0) 或其他任何东西(这就是为什么这只对值初始化有用)。

这是 ISO C++03 5.3.4[expr.new]/15 明确允许的,它说:

A new-expression that creates an object of type T initializes that object as follows:

...

  • If the new-initializer is of the form (), the item is value-initialized (8.5);

并且不限制允许这样做的类型,而 (expression-list) 形式受到同一节中进一步规则的明确限制,因此它不允许数组类型。

关于c++ - 如何在 C++ 中使用 new 运算符初始化内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com