C ++如何在未知大小的struct中初始化数组

时间:2015-03-13 06:00:51

标签: c++11 data-structures

所以我在头文件中有这个结构定义,这个结构里面是另一个结构的数组。我想从文件中读取这个数组的大小,但我无法弄清楚如何。

struct Struct1
{
struct Struct2 sArry[];
};

//And then initialize sArry[] as a size read from file
inFile >> size;
Struct1->sArry[size];

1 个答案:

答案 0 :(得分:0)

为了结束这个问题,我会写下答案。

无法在运行时更改数组大小。因此,我看到的两个解决方案是:

  1. 使用vector<Struct2>代替Struct2 sArry[]。这可能会有点效率低,但我可能不是你代码的瓶颈。

  2. 在编译时Struct2 sArry[MAXSIZE]设置最大大小,随意定义MAXSIZE。这是记忆效率低下而且不是很优雅。

  3. 注意:C ++ 11包含std::array<type, size>,这是你应该使用的而不是C风格的数组。