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?
为什么在调试模式下执行这段代码会触发断点?
#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?