-4

私はクラスAを持っています:

struct A
{
    std::map<int,int> aa;
}

およびクラスB:

struct B
{
    std::map<int,B> bb;
}

それらのコードが無限ループにある場合:

B b;
int inx=0;
while(true)
{
    A a;
    a.aa[0] = 0;
    b.bb[inx] = a;
    ++inx;
}

それはメモリリークを引き起こしますか?copy
のすべての値をにしたいと思います。それがstd::mapポインタの実装であるか知りたいだけですか?ab[inx]

4

1 に答える 1

0

それはメモリリークを引き起こしますか?

プログラムにメモリリークはありませんが、構造体Bにoperator []が定義されていないため、コンパイルエラーが発生します。

ここでマップに追加すると仮定します。

while(true)
{
    A a;
    a[0] = 0;
    b[inx] = a;
    ++inx;
}

メモリリークはありません。すべての整数を使用するまでメモリは増加しますが、メモリのどこかに格納する必要があるため、これは正常です。

于 2012-09-03T05:04:54.967 に答える