C++向列表添加新的指针对象

C++ Adding new pointer objects to List

本文关键字:指针 对象 添加 列表 C++      更新时间:2023-10-16

我在这里定义了一个数据结构,称为:

   typedef list <classSpec*> ClassSpecList;

我试图根据返回与相同数据类型匹配的某些值的函数将内容添加到列表中。在一个函数中,我在这里定义了一个列表指针对象,还有另一个调用函数的语句。

 ClassSpecList *answer = 0;
 classSpec *thisanswer = parseClass(br);

基本上,我试图将thisanswer返回的结果添加到我的主ClassSpecList中。问题是,当我尝试时

answer->push_back(new classSpec (*thisanswer));

它编译了,但我得到了一个seg错误

当我尝试其他东西时,比如:

answer->insert(ClassSpecList.begin(), *thisanswer);

我不断地得到主要的表达错误,我不知道为什么。我甚至在没有typedef的其他列表中尝试过,但我仍然得到了这些。

谢谢。

您应该首先初始化指针answer,如:

ClassSpecList *answer = new ClassSpecList;

则可以将CCD_ 5添加到此列表中。

这应该有效:

ClassSpecList *answer = new ClassSpecList;
answer->push_back(thisAnswer);

通常推荐的是:

ClassSpecList answer;
answer.push_back(thisAnswer);

如果可能的话,parseClass不应该返回指针,而应该使用typedef list <classSpec> ClassSpecList;