初始化使用malloc抛出异常创建的std :: list :: iterator对象

时间:2020-01-24 17:04:39

标签: c++ arrays iterator initialization malloc

为什么此代码引发异常?

仅当使用malloc创建迭代器数组时才会发生。
(我知道我可以使用向量并将其修复,但只是想知道原因)

int count = 100;
std::list<std::wstring>::iterator* its = (std::list<std::wstring>::iterator*)malloc(sizeof(std::list<std::wstring>::iterator)*count);
std::list<std::wstring> list;
list.push_back(L"aaa");
list.push_back(L"bbbb");
std::list<std::wstring>::iterator it;
// no exception
it=list.begin();
//read access denied 
its[0] = it;

我知道malloc不会调用构造函数对象,但是在这里 复制承包商应该在最后一行中调用,据我所知复制构造函数与先前的初始化没有任何关系,如果我错了,请纠正我

我不使用“ new”,因为我想要一个对象数组

0 个答案:

没有答案