main.cpp
#include <iostream>
#include "Simple.h"
using namespace std;
int main()
{
Simple s;
s = Simple();
}
Simple.cpp
#include "Simple.h"
Simple::Simple(void)
{
ptr = new int[10];
}
Simple::~Simple(void)
{
delete [] ptr;
}
Simple.h
#pragma once
class Simple
{
public:
Simple(void);
~Simple(void);
private:
int* ptr;
};
When I run main.cpp, program stops and return an error:
Microsoft Visual C++ Debug Library Debug Assertion Failed!
Program: ...ts\Visual Studio 2010 C++\simple error\Debug\simple error.exe File: f:\dd\vctools\crt_bld\self_x86\crt\src\dbgdel.cpp Line: 52
Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
Why it happens in such common example?