关于Heap free block xxxxxxxx modified at xxxxxxxxx after is was freed

关于Heap free block xxxxxxxx modified at xxxxxxxxx after is was freed程序崩溃了,日志中的提示是:Heapfreeblockxxxxxxxxmodifiedatxxxxxxxxxafteriswasfreed和百度快乐地玩耍了很久,得知造成这种错误的原因可能是野指针,即指针指向的内存位置不是你想要的东西,它很可能已经被删除或者移动了。事情是这样发生的:我在逻辑中使用了三个List(AllSpriteList,FriendList,Enemy

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

程序崩溃了,日志中的提示是:Heap free block xxxxxxxxmodified at xxxxxxxxx after is was freed

和百度快乐地玩耍了很久,得知造成这种错误的原因可能是野指针,即指针指向的内存位置不是你想要的东西,它很可能已经被删除或者移动了。

事情是这样发生的:我在逻辑中使用了三个List(AllSpriteList,FriendList,EnemyList)来管理战场上所有的精灵,这三个List分别装着所有精灵、我方精灵和敌方精灵。

我让AllSpriteList进入游戏主循环,遍历他,当某个精灵死了之后,先从List中把他erase掉,然后将精灵本身removeFromParentAndCleanUp。

运行毫无问题,但程序一退出就会出现上述错误。

打断点,原因如下:

1,当对象被销毁时,他的成员变量,也就是上述的三个List也会进入各自的销毁流程;

2,但是由于这三个List中装的精灵是有重叠的,我从AllSpriteList的遍历中清除了某个友方精灵,那么FriendList在销毁的时候还会去试图清除这个精灵!!(因为List中保存的仅仅是精灵的指针,并非精灵对象本身)

 

结论:尽量避免多个List中的元素重叠

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172115.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ⛽zipkin2.reporter.InMemoryReporterMetrics导致服务器CPU100%及应用OOM问题排查和解决「建议收藏」

    ⛽InMemoryReporterMetrics导致线上CPU100%及服务OOM排查和解决下面是我遇到的问题,以及一些简单的排查思路,如有不对的地方,欢迎留言讨论。如果你已经遇到 InMemoryReporterMetrics 导致的OOM问题,并已经解决,则可忽略此文。若你对CPU100%以及线上问题OOM排查不清楚,可以浏览下本文。问题现象【告警通知-应用异常告警】简单看下告警的信息:拒绝连接,不要太在意马赛克。问题排查通过告警信息,知道是哪一台服务器的哪个服务出现问题。首先登录服

    2022年3月1日
    41
  • voliate关键字的应用误区

    voliate关键字的应用误区写下这篇博客也是因为本人之前对voliate关键字理解不透彻,才有了应用误区,希望同样没有理解到位的朋友可以一起踩坑,也欢迎上帝视角明明白白的大佬指出本文的不当之处。先说一下自己之前对voliate的理解,voliate通过内存屏障可以禁止指令重排序和保证可见性,但是不能保证并发安全。禁止指令重排序就不说了,主要说一说如何保证可见性以及为什么不能保证并发安全。首先理解一下一个线程如何去修改…

    2022年5月20日
    50
  • 【STM32】HAL库 STM32CubeMX教程十一—DMA (串口DMA发送接收)

    【STM32】HAL库 STM32CubeMX教程十一—DMA (串口DMA发送接收)前言:本系列教程将对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用所用工具:1、芯片:STM32F407ZET6/STM32F103ZET62、STM32CubeMx软件3、IDE:MDK-Keil软件4、STM32F1xx/STM32F4xxHAL库知识概括:通过本篇博客您将学到:DMA工作原理STM32CubeMX创建…

    2022年6月11日
    98
  • FM/FFM

    FM/FFMFM背景及相关算法对比(1)FM(factorizationmachine)是在LR(logisticregression)基础上,加入了特征的二阶组合项;(2)SVM和FM的主要区别在于,SVM的二元特征交叉参数是独立的,如wijw_{ij}wij​,而FM的二元特征交叉参数是两个k维的向量vi、vjv_i、v_jvi​、vj​,即<vi,vj>&lt…

    2022年5月2日
    50
  • pkl文件是什么_python pkl文件

    pkl文件是什么_python pkl文件这里只介绍关于字典类型和列表类型的数据的存储,其他格式的请君自行探索。1、字典类型importpickle#首先导入这个库,没有安装的话,自行百度,很简单dict_data={“name”:[“张三”,”李四”]}withopen(“dict_data.pkl”,’wb’)asfo:#将数据写入pkl文件pickle.dump(dict_data,fo)with…

    2025年9月8日
    6
  • 证明 poj 1014 模优化修剪,部分递归 有错误

    证明 poj 1014 模优化修剪,部分递归 有错误

    2022年1月4日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号