c++ - Getting error "Debug Assertion Failed" -


i have vector of pointers class created called polygon, has derived classes different shapes. relevant code looks this:

int main() { vector<polygon*> polygonvec;  polygonvec.push_back(new triangle(2,3,1,2,-1,-4, "triangle 1")); polygon *temppolygon; temppolygon = new rectangle(1,2,3,4,5,6,7,8, "rectangle 1"); polygonvec.push_back(temppolygon);   for(vector<polygon*>::iterator itr = polygonvec.begin();     itr != polygonvec.end();     itr++) {     cout<<*itr<<endl; }  for(vector<polygon*>::iterator itr = polygonvec.begin();     itr != polygonvec.end();     itr++) {     delete *itr; }  polygonvec.clear(); 

when compile , run in visual studio 2012, runs expected , gives required output, throws below error @ end

"debug assertion failed … _block_type_is_valid(phead->nblockuse)".

can tell me why happening?

make sure declare polygon destructor virtual, otherwise have undefined behaviour when try invoking delete on polymorphic object via pointer base.


Comments

Popular posts from this blog

android - How to save instance state of selected radiobutton on menu -

python 3 IndexError: list index out of range -

IF statement in MySQL trigger -