创建指向指针列表的指针时发生访问冲突错误

Access violation error when creating pointer to pointer List

本文关键字:指针 访问冲突 错误 列表 创建      更新时间:2023-10-16

i, i ' m尝试创建指向指针的指针列表

list<ObjectClass*> *lst_testList;

并尝试这样使用

void FunctioningClass::functioningMethod()
{
    ObjectClass *object = new ObjectClass();
    object->i_testing = 234;
    lst_testList->push_back(object);
    object = lst_testList->front();
    cout<<object->i_testing;
    std::getchar();
}

我可以构建程序。但是当我运行它时,它给了我这个错误。

ConsoleApplication7.exe中0x012885DA的未处理异常:0xC0000005:访问违反读取位置0x00000004.

注意,当我创建这样的列表时

list<ObjectClass*> lst_testList;

,像这样使用

lst_testList.push_back(object);

list<ObjectClass*> *lst_testList是指向ObjectClass指针列表的指针。为了使用它,您要么需要先分配它,要么(正如你已经发现的)使用list<ObjectClass*> lst_testList(这是一个列表ObjectClass指针)。

list<ObjectClass*> lst_testList;变量为默认初始化。

对于指针list<ObjectClass*>* lst_testList;,不进行默认初始化。正确的初始化是:

list<ObjectClass*>* lst_testList = new list<ObjectClass*>();

list<ObjectClass*>* lst_testList = NULL;

这取决于你的目标