gpt4 book ai didi

C++ New 与 Malloc 用于对象的动态内存数组

转载 作者:太空狗 更新时间:2023-10-29 19:49:21 27 4
gpt4 key购买 nike

我有一个 Bullet 类,它的构造需要几个参数。但是,我正在使用动态内存数组来存储它们。我正在使用 C++,所以我想通过使用 new 运算符分配内存来符合它的标准。问题是 new 运算符在我分配数组时要求构造函数参数,而我当时没有。我可以使用 malloc 来完成此操作以获得正确的大小,然后在那里填写表格,但这不是我想要使用的 :) 有什么想法吗?

pBulletArray = (Bullet*) malloc(iBulletArraySize * sizeof(Bullet)); // Works
pBulletArray = new Bullet[iBulletArraySize]; // Requires constructor arguments

谢谢。

最佳答案

你不能。

如果你真的想符合 C++ 标准,你应该使用 std::vector

仅供引用,它可能比您要实现的目标更昂贵。如果您可以这样做,new 将调用构造函数。但是由于您以后无论如何都会修改该对象,因此初始构造是无用的。

关于C++ New 与 Malloc 用于对象的动态内存数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9704469/

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