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

C++ How to initialize array in struct of unknown size

所以我的头文件中有这个结构定义,这个结构里面是另一个结构的数组。我想从一个文件中读取这个数组的大小,但我不知道如何读取。

struct Struct1
{
struct Struct2 sArry[];
};

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

为了关闭问题,我会写答案。

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

  1. 使用 vector<Struct2> 而不是 Struct2 sArry[]。这可能有点低效,但我认为这可能不是您代码的瓶颈。

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

注意:C++11 包括 std::array<type, size>,您应该使用它来代替 C 样式数组。