我在使用Visual Studio 2010 C++编译器时遇到了奇怪的行为。
以下代码可以编译,但在执行后会抛出“Debug assertion failed”的错误信息:
"_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
在GCC下编译并运行顺利。这是我的问题吗?
"_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
在GCC下编译并运行顺利。这是我的问题吗?
#include <iostream>
#include <vector>
using namespace std;
typedef unsigned int uint;
class Foo {
vector<int*> coll;
public:
void add(int* item) {
coll.push_back(item);
}
~Foo() {
for (uint i = 0; i < coll.size(); ++i) {
delete coll[i];
coll[i] = NULL;
}
}
};
int main()
{
Foo foo;
foo.add(new int(4));
Foo bar = foo;
return 0;
}