最近几天遇到程序在debug下没有问题,在release下崩溃的问题。
崩溃的地方是vector的push_back()函数,分配内存报错。在网上搜了很多办法都没有生效。
具体问题是:在visual studio 2015下开发的dll程序。相关属性设置:
属性--通用--字符集--Use Unicode Character Set;属性--C/C++--代码生成--MT。
解决办法是在调用push_back()前先调用reserve()。就是预留内存。
之前尝试过不用push_back(),在前面先resize()然后直接赋值,还是崩溃,只有使用reserve()的方法帮我解决了问题。
这段代码之前是没有问题的,从改字符集为Use Unicode Character Set之后才出现的。
参考:http://blog.sina.com.cn/s/blog_4b9cc6db0100cbw3.html
vector 的push_back()在release下崩溃问题
原文:https://www.cnblogs.com/juluwangshier/p/13180205.html