我想知道经验法则new
和delete
是什么。我一直认为,每次打电话new
,我都应该有一个delete
。
在下面的情况下,如果我包含destructor
但是,我会得到一个严重的过度错误。如果我不包含destructor
,我的代码可以正常工作。
struct Foo
{
Foo(int A, int B)
{
bar = new std::vector< std::vector < int > >(A, std::vector<int>(B,2);
//creates a vector of A vectors where each nested vector contains the number 2 B times.
}
~Foo() //Get bad access error if destructor included in code.
{
delete[] bar;
}
std::vector< std::vector < int > > *bar;
};
int main()
{
Foo X;
return 0;
}