gpt4 book ai didi

c++ - 在 C++ 中创建动态对象的动态数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:15 25 4
gpt4 key购买 nike

我知道如何创建动态对象数组。

例如类名是Stock。

Stock *stockArray[4];
for(int i = 0 ; i < 4;i++)
{
stockArray[i] = new Stock();
}

如何将其更改为动态对象的动态数组?

我尝试过的:

库存 stockArrayPointer = 新库存 stock[4];

它不起作用,错误是“Stock** 的值不能用于初始化 Stock 类型的实体。

第二个问题是创建动态对象的动态数组后,访问数组中指针的语法是什么。

现在,我使用 stockArray[i] = new Stock();这将如何改变?

需要一些指导......

最佳答案

如果您使用的是 C++,那么您不应该重新发明轮子,只需使用 vectors :

#include <vector>

std::vector< std::vector< Stock > > StockVector;

// do this as many times as you wish
StockVector.push_back( std::vector< Stock >() );

// Now you are adding a stock to the i-th stockarray
StockVector[i].push_back( Stock() );

编辑:

我不明白你的问题,如果你只想在堆上分配数组数组,只需使用:

Stock** StockArrayArray = new Stock*[n]; // where n is number of arrays to create
for( int i = 0; i < n; ++i )
{
StockArrayArray[i] = new Stock[25];
}

// for freeing
for( int i = 0; i < n; ++i )
{
delete[] StockArrayArray[i];
}
delete[] StockArrayArray;

关于c++ - 在 C++ 中创建动态对象的动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20303820/

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