链表储存子弹信息出现异常, 其中IMAGE变量的访问出现了问题

-1

求助大佬, 捕鱼游戏炮弹和大炮发射出了问题, 炮弹设成一个单一结构体的时候还能完美发射,后来想用链表达到连续多个炮弹发射的效果,但是链表好像出了问题, 没有报错只有异常, 具体异常如下:

第一个异常是在创建链表和插入节点时, 直接赋值初始化IMAGE成员变量会出问题:

(代码已删除)

把异常那两行和下面insertBulletNode函数的两行类似代码都改成直接loadimage()的形式就可以了. 但是又出现了第二个异常, 在旋转炮台函数里面:

(代码已删除)
ava
Orca

2020-5-1

1 请上传可以编译运行的代码,用眼找上百行代码中的bug很费神 -  无名氏  2020-5-1
@无名氏 已经更新了可编译的代码, 感谢大神提醒! -  Orca  2020-5-1
1 malloc 改为使用 new 代替试试? -  xiongfj ◑◑  2020-5-2
@xiongfj ◑◑ 好的我试一下,谢谢! -  Orca  2020-5-2
@xiongfj ◑◑ 成功了!!!!我们暂时没学c++,虽然具体原理不太明白,但是非常非常非常非常感谢大神!!!!!!! -  Orca  2020-5-2
2

IMAGE 是一个 class,如果用 malloc 分配存储空间,并不会执行对象的构造函数,导致对象异常。

所以需要用 new 来分配空间,new 分配好存储空间后,会执行对象的构造函数。

ava
慢羊羊

2020-5-2

这回彻底明白原理了,感谢大佬的耐心解释!! -  Orca  2020-5-3
技术讨论社区