从结构体中移除对象
Removing an object from a structure C++
我遇到了一个小问题。我试着浏览一个结构,找到一个不符合我要求的对象,并删除它。
但是我得到一个"程序停止工作"后执行方法。你们能帮忙吗?
void myStruct::ObRemove(int n)
{
for (myStruct *d = p; d != NULL; d = d->sek){
if (d->m < n){
;
}
else{
myStruct *m=d;
d = m->sek;
delete m;
}
}
}
m是类的对象,该结构体是容器结构体。如果你需要任何额外的代码,请告诉我,我在这里等你。
这是结构类(注意:名称与我试图在英语中创建的不相似,但重写需要,所以我将其粘贴在我的lang中。)
struct Mazgas
{
private:
Muziejus m;
Mazgas *sek;
Mazgas *p;
Mazgas *d;
public:
Mazgas() : p(NULL), d(NULL) {}
~Mazgas() { Naikinti(); }
void Naikinti();
void Deti(Muziejus m);
void Imti(Muziejus &m)
{
m = d->m;
};
void Rikiuoti();
void Salinti(int n);
void Pradzia(){ d = p; }
void Sekantis() { if (d) d = d->sek; }
bool Yra() { return d != NULL; }
};
在else情况下,您将两次移动到链表中的下一个项(一次通过d = m->sek;
,一次通过d = d->sek
)。当您到达链表的末尾时,这可能导致一个问题(如果m->sek
是NULL
,那么d->sek
将尝试解引用NULL
)。
相关文章:
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- 包含 std::list 的结构体的 C++ 初始化
- 结构体和类的不同大小(),彼此具有相同的字段类型
- 如何使用结构体的向量数组?
- 如何使用结构体在C++中更改这些代码?
- 如何在C++中表示JSON文档的递归对象结构?
- 无法在 Mosquitto MQTT Broker 插件上访问结构体 mosquitto 的元素
- 结构体对象代表什么?
- 如何创建一个公共python函数,它可以接收c++结构体/实例或python对象作为参数
- 将字符数组类型转换为结构体(不是类/对象)
- 类静态方法返回包含该类对象的结构体
- 当从固定结构体中存储的对象构建函数时,c++ lambda构建静态函数返回意外值
- 使用c#结构体将数据从c# COM对象传递到c++
- 定义操作符<为另一个结构体的两个对象在结构体中
- 向std::map添加包含不可复制/移动对象的结构体
- 将带有字符串成员的结构体对象压入std::vector时出错
- 将指向结构体或内存对象的空指针强制转换为新结构体
- 从结构体中移除对象