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

0

问题已解决, 用new 替换 malloc 即可,感谢大神!

-------------------原问题如下-------------------

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

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

http://chuantu.xyz/t6/731/1588334413x3661913030.jpg

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

http://chuantu.xyz/t6/731/1588335383x3703728804.jpg

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