内存问题——在线等待,解决就结贴

时间:2021-06-06 19:04:39
HEAP: Free Heap block da3f390 modified at da3fae8 after it was freed

总是出现这个错误!那位能告诉我为什么?da3f390不定

14 个解决方案

#1


堆:堆内存地址da3fae8  被试图修改,可是该内存区(地址da3f390开始的一段内存)已经被释放。
    使用无效内存。
    
    我不得不说,这是一个(**)的问题

#2


to SwimmingFish1(Fish) 
怎样解决?

#3


是不是没有把指针设为NULL

#4


to  miyuki0424(fish)
不是!
错误我找到了,
提醒一下是多线程程序
以后UPyou有分

#5


up

#6


哪个地方内存写出界了!

#7


应该是使用了被释放的内存变量!Heap block 记得是由系统维护,stack是用户开的。内存排错用
BondsChecker.

#8


GZ

#9


野指针?

#10


错了吧?在堆上分配的内存是要自己去delete或者free来收回的,而在栈上分配的空间由系统自己收回.

#11


建议楼主在每次new或者malloc之前,先判断该指针是否为NULL;同时记得每次delete或者free之后立马把它置为NULL,这样可以有效防止野指针或者memory leak.
同时强烈推荐使用Numega的BoundsChecker,非常好用.

#12


我们公司都戏称BoundsChecker为补洞专家.

#13


up

#14


我确定是野指针的问题

#1


堆:堆内存地址da3fae8  被试图修改,可是该内存区(地址da3f390开始的一段内存)已经被释放。
    使用无效内存。
    
    我不得不说,这是一个(**)的问题

#2


to SwimmingFish1(Fish) 
怎样解决?

#3


是不是没有把指针设为NULL

#4


to  miyuki0424(fish)
不是!
错误我找到了,
提醒一下是多线程程序
以后UPyou有分

#5


up

#6


哪个地方内存写出界了!

#7


应该是使用了被释放的内存变量!Heap block 记得是由系统维护,stack是用户开的。内存排错用
BondsChecker.

#8


GZ

#9


野指针?

#10


错了吧?在堆上分配的内存是要自己去delete或者free来收回的,而在栈上分配的空间由系统自己收回.

#11


建议楼主在每次new或者malloc之前,先判断该指针是否为NULL;同时记得每次delete或者free之后立马把它置为NULL,这样可以有效防止野指针或者memory leak.
同时强烈推荐使用Numega的BoundsChecker,非常好用.

#12


我们公司都戏称BoundsChecker为补洞专家.

#13


up

#14


我确定是野指针的问题