【发布时间】:2016-02-29 01:00:12
【问题描述】:
我正在尝试在构造函数中为结构数组动态分配存储空间。我是 C++ 新手,尝试过各种语法变体,但现在我想知道这是否可以完成。
struct Trade
{
int index;
}
define MAX_TRADES 5000
struct foo
{
Trade *trade [MAX_TRADES];
int cumeTradeCount;
foo() :
cumeTradeCount(0),
{
// here is where I want to allocate storage for cumeTradeCount Trade structures
....
memset(trade, 0, cumeTradeCount * sizeof(Trade*));
}
}
具体来说,我想弄清楚的是如何在构造函数中为“cumeTradeCount”结构分配存储空间。 如果我在 C 中执行此操作,我会执行以下操作:
for (int i = 0; i < cumeTradeCount; ++i)
trade[i] = calloc(1, sizeof(Trade *));
【问题讨论】:
-
memset确实分配内存 - 它设置为特定值。由于您正在初始化cumeTradeCount=0,memset实际上也不会做任何事情。另外,结尾的逗号会使这段代码无法编译。
标签: c++ arrays dynamic struct constructor