C++ 迭代器数组

c++ array of iterators

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

#include <list>

void main() {

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

  delete iterators;

}

正如评论中所说,如果您使用

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

你必须使用

delete [] name;

当你使用运算符new[]时,你必须同时使用运算符delete[],否则是未定义的行为。

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