-2

私は現在、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);
}
4

1 に答える 1