你不是申请内存出错,是访问了未分配的地址。这就是内存越界造成的,越界写了你不该写内存区域。
内存地址空间是要先申请才能使用的,但不光是你用,C++运行库也有一些全局变量,其中就有你new内存的记录、包括new的这段内存的大小、起始地址。如果你越界修改了内存,那就有两种可能:1、访问到了未申请的地址空间,直接报错,2、修改到不是你申请的内存地址空间,比如说C++运行库的全局变量。
问题的本质在于你之前越界访问了内存空间,好好检查你代码吧。
[建议]
多次new 没有回收,内存乱了。。。。。。
建议使用玩之后就立即清理掉,不必要等到下个循环的时候再来覆盖它,(因为程序可能不会按照你的意愿来再次执行循环)
这个是习惯。
好好检查数组下标吧,十有八九是下标越界了。
如果是跨线程访问,还得考虑同步问题
是不是指针越界了。