C ++从指针数组中删除一个项目

时间:2013-12-28 19:06:51

标签: c++ arrays pointers sfml delete-operator

我正在创建一个指针数组,然后尝试以这种方式删除其中一个项目:

sf::Rect<float>* Rects2[] ={new sf::Rect<float>(0,0,WIDTH,1), (sf::Rect<float>*)&_invader.getBoundingRect() };
    delete Rects2[1];

当我运行代码时,我得到一个调试断言失败的&#34; _BLOCK_TYPE_IS_VALID(pHead-&gt; nBlockUse)&#34;

我尝试使用delete &Rects2[1];

删除元素没有成功

当我尝试删除第一项时 - delete Rects2[0];我收到错误一次,然后就没问题了。

1 个答案:

答案 0 :(得分:0)

您的第二个数组元素未由您分配,因此您不应尝试取消分配它(除非库文档说明了这一点)。

至于其他尝试,当然你只能取消一次事物。