小技巧解决:vector变量引用,传入dll库函数中,增加内容,vector变量生命周期结束的时候,会触发断点

原创 2016年10月11日 12:24:03

断点的提示:

Windows已在XX中触发一个断点。

其原因可能是堆被破坏,这说明XX中或它加载的任何Dll中有Bug

原因也可能是用户在XX具有焦点时,按下了F12


原因分析:dll库函数里面如果调用vector的push_back相当于在dll里面分配内存,然后在另外模块释放,这个时候就会触发断点。

解决思路:dll库函数里面,不调用vector的push_back。

解决方案1:

1.第一次传入一个空的vector引用,dll库函数检测vector的size如果是0则返回需要的size。

2.在原位置push_back足够的数量;

3.再次调用dll函数,传入vector引用,dll库函数逐个修改vector成员;

解决方案2:

模块间函数调用的传参的时候,尤其是有分配内存之类的动作的时候,最好是用传值的方式。

C++标准库中vector容器的使用

标准STL序列容器:vector、string、deque和list。 标准STL关联容器:set、multiset、map和multimap。 非标准序列容器slist和rope。slist是一...
  • niusiqiang
  • niusiqiang
  • 2015-01-25 18:09:11
  • 1597

vector 常用函数

vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存...
  • wuan584974722
  • wuan584974722
  • 2016-01-23 16:26:55
  • 1390

C++ vector变量等导致内存泄露问题的解决方法

之前在做一个音频特征提取的批量处理程序,老是出现内存泄露问题,用Visual Leak Detector(VLD)工具做了下检测,检测出了一些问题,解决后还是会有问题。之后继续排查,因为我的代码中,大...
  • cdjcong
  • cdjcong
  • 2016-03-09 21:26:44
  • 4401

c++中vector做形参传递问题

最近工作遇到了想传递vector容器的问题,于是找了很多资料查看了一下,自己也通过调试理解了一下, 代码: 如图:代码第69行定义了一个vector,然后我写了3个初始化容器的函数in...
  • u012987441
  • u012987441
  • 2016-09-19 11:27:15
  • 6509

c++ vector各种函数介绍及其用法

构造函数 语法: C++ Vectors可以使用以下任意一种参数方式构造: vector();    //无参数 - 构造一个空的vector vector( size_typ...
  • clx55555
  • clx55555
  • 2016-08-29 17:36:21
  • 907

vector C++ 函数库用法

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。 1 基本操作 (1)头文件#include. (2)创建vector对象,vector vec; (3)尾部插入数字:...
  • ZQUSwansea
  • ZQUSwansea
  • 2015-11-09 11:03:44
  • 126

vector取地址做数组使用

个人比较喜欢用vector代替数组来使用,一是代码看着比较简洁,二是出错几率大大降低 但是有些库函数或者别人写的函数用的是数组,这就需要将vector里的数组首地址给出来 比如:int get_dat...
  • varding
  • varding
  • 2010-12-27 10:05:00
  • 1901

vector的push_back对于拷贝构造和赋值操作的调用

http://blog.csdn.net/silyvin/article/details/8985323
  • silyvin
  • silyvin
  • 2014-06-08 09:43:21
  • 3747

C++ vector用法(详解!!函数,实现)

1,简述一下vector的基本操作,它的size,capacity(),clear,reverse,reserve,   push_back等!!! 2,说说,vector的存储特性,是顺序存储还...
  • msdnwolaile
  • msdnwolaile
  • 2016-09-30 01:13:40
  • 12912

库vector函数的熟悉

写在前面:本篇博客用于熟悉vector函数库的函数运用,下一篇博客将对该函数库中常用函数的实现进行模拟#if 0 // vector::push_back #include #include us...
  • jiaochiwuzui
  • jiaochiwuzui
  • 2017-11-27 18:42:15
  • 61
收藏助手
不良信息举报
您举报文章:小技巧解决:vector变量引用,传入dll库函数中,增加内容,vector变量生命周期结束的时候,会触发断点
举报原因:
原因补充:

(最多只允许输入30个字)