stl容器跨模块使用的陷阱
来源:互联网 发布:北京数据分析师招聘 编辑:程序博客网 时间:2024/05/18 01:28
项目开发过程中,遇到了一个stl容器vector释放崩溃的问题。vector定义为局部变量,通过引用方式传递到D_print模块的导出函数中,
在导出函数中向vector添加数据,后续使用vector数据打印二维码小票。调试发现局部变量出作用域调用vector析构函数直接崩溃,崩到HeapFree函数。
奇怪vector定义的是局部变量,并且没有使用new,使用的应该是栈存储,,怎么会崩到HeapFree呢。是不是vector太大堆栈溢出了呢,尝试把vector定位为static变量,每次调用clear清空下,
函数第一次执行到跳出,ok没崩溃,第二次执行调用clear崩溃又来了,看来跟堆栈没啥关系。百度找到http://blog.csdn.net/nancy_m/article/details/9028487 http://blog.csdn.net/z397164725/article/details/11561751
清楚原因了,vector在同一个模块分配内存、释放内存就ok了。
阅读全文
0 0
- stl容器跨模块使用的陷阱
- STL容器erase的使用陷阱
- STL容器 erase的使用陷阱 (一)
- STL容器 erase的使用陷阱 (二)
- STL容器erase的使用陷阱(三)
- STL容器erase的使用陷阱(三)
- STL容器erase的使用陷阱(三)
- 关于STL常用容器的erase使用陷阱
- STL容器 list、vector、map、set 使用的陷阱
- STL容器删除元素的陷阱(转)
- STL容器删除元素的陷阱
- STL容器的使用
- STL:循环删除容器中元素的方法和陷阱
- STL:循环删除容器中元素的方法和陷阱
- STL:循环删除容器中元素的方法和陷阱
- shared_ptr 在 stl容器中排序的陷阱。
- STL容器中erase方法的不同陷阱
- STL中容器操作的迭代器失效-erase()函数陷阱
- 最新最全的 Android 开源项目合集(一)
- Android应用使用Multidex突破64K方法数限制
- Android Butterknife 框架源码解析(1)——ButterKnife的使用
- [RK3288][Android6.0] WiFi之priority计算及使用
- Parallels虚拟机windows忘记密码如何重置?
- stl容器跨模块使用的陷阱
- 未能找到类型或命名空间名称"log4net"(是否缺少using指令或程序集引用?)解决方法
- Android中用TextVIew显示Html标签文本
- 【题解】 zoj 3747 计数dp 进击的巨人
- 路由快速收敛技术(ERCN)
- nyoj-19-擅长排列的小明
- 欢迎使用CSDN-markdown编辑器
- 百度地图:添加覆盖物(描点)
- java中哈希表及其应用详解