指针指向指针导致崩溃

Pointer to pointer is causing crash

本文关键字:指针 崩溃      更新时间:2023-10-16

示例代码

sf::Drawable *mDrawables = new  sf::Shape(sf::Shape::Circle(-10, -10,5,sf::Color::Green));
Particle particle(mDrawables);

Particle::Particle(sf::Drawable *hum)
{
    *mDrawables = *hum;
}

根据我所做的缩小范围,我认为崩溃发生在这里的某个地方。一旦调用构造函数,程序就会崩溃。有人知道我做错了什么吗?任何帮助都将非常感激。

我没有看到指针指向指针?

*mDrawables = *hum;

mDrawables是一个指针,但是*mDrawables的解引用指针可能是类不可复制的。

也许你应该试试这个

mDrawables = hum;

我也希望sf::Shape继承了sf::Drawable

看起来您正在用mDrawables的内容覆盖mDrawables的内容(在Particle构造函数中别名为参数hum)

*mDrawables = *hum行应该读作"将hum的内容分配给mDrawables的内容"。

很难说为什么这会导致崩溃;在代码示例中没有足够的细节(我不知道当你复制它时Shape做什么)。

我认为你可能需要在这里重新设计,但我不知道你的总体意图是什么,所以我不能在这方面给你任何好的建议。