私は現在、13MBを超える非常に大きな構造を持っています(ポインタを持つことができないため、そのままにしておく必要があります)。私の問題は、それをクラスに格納する方法です。
それがクラスの一部である場合、stackoverflow が発生します。ポインターを使用すると、クラスのコピーを開始する必要があるまで、問題は解決されます....その後、地獄が始まります。(クラスのメンバーが多いため)。
STL ベクトルと配列を試してみましたが、それでもスタック オーバーフローが発生します。構造体をスタックに置かず、メモリを直接割り当てる STL コンテナはありますか?
このようにして、すべてを適切に行うことができます。
ありがとう。
アップデート:
コード例:
//HEADER
#include <vector>
struct BigStruct { //This is untouchable or divisible into an array of arrays
char a[1000];
int b[1000][1000];
long c[1000000];
// etc...
};
class Foo
{
std::vector<BigStruct> a; //It has to be here since is related to this instance of the class
public:
Foo();
//All the other funcs and method
// ...
//All the other variables are from STL
// ...
};
//CPP
Foo::Foo(){
a.resize(1);
}