小编use*_*010的帖子

Visual Studio 2010 C++运行时错误

我在Visual Studio 2010 C++编译器中遇到了奇怪的行为.以下代码编译但在执行消息后抛出"Debug assertion failed":

"_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)"

在GCC下编译并顺利运行.这是我的错吗?

#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;
}
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio-2010 delete-operator runtimeexception

4
推荐指数
1
解决办法
1170
查看次数