我有一个类Bar
,它的构造函数初始化一个std::vector
类型Foo
(另一个类)。
条形图.cpp
Bar::Bar(int n) {
for(int i = 0; i < n; i++) {
Foo foo;
foo.somefunction(i);
vec.push_back(foo) //this should insert foo into the vector
}
}
酒吧.h
class Foo;
class Bar {
std::vector<Foo> vec;
};
当我调试时,构造的第一次迭代工作正常。foo
被创建,foo.somefunction()
运行良好,并foo
被推入vec
.
第二次迭代似乎也可以正常工作,但是程序在返回开始第三次迭代时崩溃。
我得到_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
错误和HEAP CORRUPTION DETECTED
.
Foo
是一个包含动态创建数组的类,没什么特别的。像这样的东西:
Foo::Foo() {
solution = new float[size];
// some function that initializes the elements of solution
}
和一个常规的析构函数~Foo() {delete [] solution;}
。我不认为问题来自Foo
.