安卓上c++ new失败?会是什么原因导致的呢?

在安卓平台运行一段时间后会出现c++ new失败 导致应用闪退

自己无法在本地复现此问题 只能使用bugly来上报出错堆栈

具体报错信息如下

1 #00 pc 000581c8 /system/lib/libc.so (tgkill+12) [armeabi-v7a::9d9b55093154ce588d3db50f5132e8e9]
2 #01 pc 0005566d /system/lib/libc.so (pthread_kill+44) [armeabi-v7a::9d9b55093154ce588d3db50f5132e8e9]
3 #02 pc 0001de79 /system/lib/libc.so (raise+12) [armeabi-v7a::9d9b55093154ce588d3db50f5132e8e9]
4 #03 pc 0001a131 /system/lib/libc.so (__libc_android_abort+40) [armeabi-v7a::9d9b55093154ce588d3db50f5132e8e9]
5 #04 pc 00017974 /system/lib/libc.so (abort+4) [armeabi-v7a::9d9b55093154ce588d3db50f5132e8e9]
6 #05 pc 006fee4f __verbose_terminate_handler (/s/ndk-toolchain/src/gcc/gcc-4.9/libstdc++-v3/libsupc++/vterminate.cc:95) [armeabi-v7a]
7 #06 pc 006c8f8d __terminate (/s/ndk-toolchain/src/gcc/gcc-4.9/libstdc++-v3/libsupc++/eh_terminate.cc:47) [armeabi-v7a]
8 #07 pc 006c9001 terminate (/s/ndk-toolchain/src/gcc/gcc-4.9/libstdc++-v3/libsupc++/eh_terminate.cc:57) [armeabi-v7a]
9 #08 pc 006c9125 __cxa_throw (/s/ndk-toolchain/src/gcc/gcc-4.9/libstdc++-v3/libsupc++/eh_throw.cc:87) [armeabi-v7a]
10 #09 pc 006c945b operator new (/s/ndk-toolchain/src/gcc/gcc-4.9/libstdc++-v3/libsupc++/new_op.cc:54) [armeabi-v7a]
11 #10 pc 006c94af operator new [] (/s/ndk-toolchain/src/gcc/gcc-4.9/libstdc++-v3/libsupc++/new_opv.cc:32) [armeabi-v7a]

c++程序代码 上报的出错位置在 newBuffer这行

nSize = Header.wWidth * sizeof(TNewInfo) * Header.wHeight;
newBuffer = new TNewInfo[nSize]; //上报的崩溃行

运行一段时间后才会有小概率出现new失败崩溃问题,模拟器的话应该不会内存不足吧?到底是什么原因导致的呢

1.内存溢出(可能性较大)
2.内存不足
一般都是第一种情况,挂的地方一般不是源头,源头是你前面的某次操作把内存搞坏了第二次访问到被破坏的内存直接GG。

好的 谢谢 我往前检查检查

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。