今天下午对面的老大调试遇到这个问题,大家1起讨论好久才解决这个问题
crt源代码都是可以看到的,为了了解清楚缘由,10分有必要查看源码,源码1般在你的VS安装路径下VCcrtsrc下。
点击重试,定位到崩溃源码地方dbgdel.c的第52行。
为了了解缘由,我的测试代码是这样写的:
程序员new 和 malloc申请的内存是位于堆上面,程序不会自动清算,这就是区分所在。
因此,检查你所释放(delete 或 free)的那个指针,不是动态申请的就别弄巧成拙去释放了。
老大遇到的情况就有点稀里糊涂了,new了1段内存,然后调用delete[]释放,啥都没干也会崩溃。大家分析了下,代码本身是没有缘由的,这时候候他检查工程属性发现:大部份工程都是win32的,这个dll却是使用的mfc dll(说道MFC我想说下,这都甚么年头了,如果是刚入行的就不要学MFC了,没意义没前程)。工程属性改正后,重新编译就行了。
下一篇 mysql高并发性能的关键要素