i,我试图创建指针列表
的指针 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);
它没有给我任何错误。
答案 0 :(得分:3)
list<ObjectClass*> *lst_testList
是指向ObjectClass指针列表的指针。为了使用它,你需要先分配它或
(正如您已经发现的那样)使用list<ObjectClass*> lst_testList
(这是ObjectClass指针的列表)。
答案 1 :(得分:1)
此类list<ObjectClass*> lst_testList;
变量为default-initialized。
对于指针list<ObjectClass*>* lst_testList;
,不执行默认初始化。正确的初始化是:
list<ObjectClass*>* lst_testList = new list<ObjectClass*>();
或
list<ObjectClass*>* lst_testList = NULL;
这取决于你的目标。