gpt4 book ai didi

C++指针数组初始化帮助

转载 作者:可可西里 更新时间:2023-11-01 16:40:04 26 4
gpt4 key购买 nike

我在初始化指针数组时遇到了问题。我发现用 gcc c++ (4.6.0) 编译的是:

MyClass** a = new MyClass*[100];

并不总是初始化指针数组。 (大多数时候它确实给了我一个空指针数组,这让我很困惑)

MyClass** a = new MyClass*[100]();

确实将数组中的所有指针初始化为 0(空指针)。

我正在编写的代码可以跨 Windows/Linux/Mac/BSD 平台移植。这是 gcc c++ 编译器的一个特殊功能吗?还是标准的 C++?标准中的哪个地方是这样说的?

最佳答案

这个值初始化是标准的 C++。

相关标准在 C++98 和 C++03 §5.3.4/15 中。在 C++98 中它是默认初始化,在 C++03 中它是值初始化。对于您的指示,它们都减少到零初始化。

C++03 §5.3.4/15:

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

在 C++0x 中,该段改为引用“8.5 的初始化规则用于直接初始化”,在 N3290(FDIS)中,您会在 §8.5/16 中找到大致相同的措辞。

干杯,

关于C++指针数组初始化帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7186274/

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