我有一个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;
}
会导致内存泄漏吗?
我希望a
的所有值都复制到b[inx]
。我只是想知道这是std :: map指针的实现吗?
答案 0 :(得分:0)
这会导致内存泄漏吗?
程序中没有内存泄漏,但编译错误,因为没有为struct B定义operator [。
假设你在这里添加地图:
while(true)
{
A a;
a[0] = 0;
b[inx] = a;
++inx;
}
没有内存泄漏。内存将增加,直到您使用所有int数字,但这是正常的,因为它们必须存储在内存中的某处。