In the following code when I add the the line which is specified with an arrow gives error:
Error in `./a.out': double free or corruption (fasttop): 0x00000000007a7030 * Aborted (core dumped)
The code works if I do not use destructor. Any idea?
#include<iostream>
#include<vector>
struct Element
{
int *vtx;
~Element ()
{
delete [] vtx;
}
};
int main ()
{
Element *elm = new Element [2];
elm[0].vtx = new int [2]; // <----- adding this gives error
std::vector <Element> vec;
vec.push_back (elm[0]);
vec.push_back (elm[0]);
return 0;
}