一个很简单但是完全没头绪的问题:VC++,vector 析构函数
下面的代码再简单不过了:有一个类叫Base,它里面只有一个指针成员int *p,并且在构造函数中分配空间,然后在析构函数中被delete掉。
mian函数中申请了一个vector<Base> vec,然后生成一个对象并加入到vector里。
结果在main函数结束的时候就会弹出这个错误:
_BLOCK_TYPE_IS_VALID(phead->nBlockUse)
可是我觉得程序完全没错误啊,还请高手指点,不盛感激
//main.cpp
#include <vector>
#include "Base.h"
using namespace std;
void main()
{
vector<Base> vec;
Base a;
vec.push_back(a);
}
//Base.h
class Base
{
public:
Base();
virtual ~Base();
private:
int* p;
};
//Base.cpp
#include "Base.h"
Base::Base()
{
p = new int;
}
Base::~Base()
{
delete p;
}