c ++迭代器数组

时间:2018-01-24 14:17:54

标签: c++ dynamic-allocation listiterator

为什么在调试模式下执行此代码会触发断点?

#include <list>

void main() {

  std::list<int>::iterator* iterators = new std::list<int>::iterator[50];

  delete iterators;

}

2 个答案:

答案 0 :(得分:3)

如评论中所述,如果使用

实例化数组
... = new name[];

你必须使用

delete [] name;

答案 1 :(得分:2)

当你使用operator new []时,你还必须使用operator delete [],否则它是一个未定义的行为。

您可以查看此问题以获取更多信息: Is delete[] equal to delete?

相关问题