I came across strange behavior in Visual Studio 2010 C++ compiler. Following code compiles but throws "Debug assertion failed" after execution with message:
"_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
Compiles and runs smoothly under GCC. Is it my fault?
#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;
}
 
     
     
     
     
     
    