`
dengbaoleng
  • 浏览: 1133557 次
文章分类
社区版块
存档分类
最新评论

在使用vector的push_back函数时,Release版下运行会出错的一个原因

 
阅读更多
在vs2008下,当在一个结构体中有vector类型的成员时,如果在定义了一个该结构体的变量,并使用memset函数对其初始化,在debug版本下并不会有问题。但换成release版本后,程序运行会产生异常,并报如下信息:

Microsoft Visual Studio C Runtime Library has detected a fatal error in STLtest.exe.

Press Break to debug the program or Continue to terminate the program.

该问题主要是由于对结构体变量使用了memset函数,如果结构体中有vector这样的类型,使用memset会导致结构体中的某些信息丢失,从而在使用push_back函数插入数据时产生异常中断。希望我的遭遇对大家有帮助。


分享到:
评论

相关推荐

    C++ push方法与push_back方法的使用与区别

    【摘要】 push与push_back是STL中常见的方法,都是向数据结构中添加元素。初识STL,对于添加元素的方法以产生混淆,这里暂对两种方法作出比较分析。此外,本文还将简述push对应的stack与...该函数将一个新的元素加到v

    C++之STL的vector详解,包括初始化和各种函数:vector的初始化、数据的增删查改等

    一、vector的初始化 1、默认构造函数 2、拷贝构造函数copy区间 3、指定数量和元素值的构造函数 4、指定数量的构造函数 5、拷贝构造函数 二、vector的初始化-赋值 1、.assign(beg, end) 赋值操作 2、.assign(n, elem)...

    vector与map的erase()函数详细解析

    vector循环删除的时候,erase(it)会返回下一个迭代器的地址,保险的做法是赋值给it 即 it= erase(it) 这是vector的内部机制所造成的,所以对vector进行erase的时候特别注意迭代器是否会失效! map则可以直接erase(it...

    c++ 简易模板类vector

    简易版vector,用模板类实现。实现函数有:capacity,reserve,push_back,pop_back,size,swap,empty,clear,erase。

    deck-of-cards.zip_card of deck_deck of card_deck-of_deck-of-c

    构造函数使用vector的函数push_back将产生的牌添加到vector的末尾。这个过程对于deck的52张牌都要做一遍 d) 函数shuffle用于洗牌。洗牌算法应该在vector中反复做。对于每张牌,随机选取另一张牌,然后交换这两张牌 e...

    my_allocator_vector.rar

    ubuntu 16.04实测,实现标准库中vector的实现,缺少部分函数,包含了主要的push_back,resize,reserve,[],size()函数,若有疑问请发送至2268047160@qq.com,最近在详细阅读c++ primer第五版

    vector链表实现,STL

    如果将节点变为数组,将会常熟优化。vector链表实现。...拥有iterator,begin,end,rbegin,rend,operator[],push_back,pop_back,push_front,pop_front,size等海量函数以及STL函数支持,也支持RE判断!

    c/c++函数库说明(api)html版

    所有的 C / C++ 函数 Constructors (cppstring) Constructors (cppvector) Operators (cppbitset) Operators (cppdeque) Operators (cppstack) Operators (cppstring) Operators (cppvector) abort (stdother...

    C++ Vector用法详解

    vector是C++标准模版库(STL,Standard Template Library)中的部分内容。之所以认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单的说:vector是一个...c.push_back(elem)在尾部插入一个elem数据。 代

    static_vector:具有固定容量和嵌入式存储的可动态调整大小的向量

    参考 变更日志 修订4 LEWG建议在超出容量时, push_back应该是UB LEWG建议这应该是一个独立的标头 修订版3 包括有关LEWG的LWG设计问题。 包含LWG反馈。 修订版2 将占位符名称fixed_capacity_vector替换为static_...

    C++中操作Ini文件的源代码

    以下是我代码中使用ini的一个函数,揣摩一哈,百度上搜一下关于ini的那几个函数的用法就差不多了: #include "CIni/iniparser.h" …… void CDoFile::GetSupportPluginList(std::vector<std>> &SupportPluginList...

    向量简单实现

    简单的vector模版类实现,assign,front,begin,insert,erase,push_back,pop_back,empty.....等函数的实现

    仿QQ日历控件开源项目

    例如显示月份的单元格是由vector动态的push_back,但是如果你认真分析后会发现实际上这些单元格是固定的,也就是说在构造函数中就可以new一个固定大小的内存空间来供vector使用,而不用每次都动态的push_back。...

    HumanMotionTrack 全

    可是我们知道骨骼会跟着它的父骨骼转动的,例如左小臂会跟着左臂转动,当身体转动时左臂也会跟着身体转动的,这里看起来像是有一个父子连动的关系,所以当前节点的位置会与它的父骨骼有关,父骨骼转动的角度,子骨骼...

    STL源码剖析.pdg

    5.2.2 一个由上而下的程序 212 5.2.3 rb-tree 的节点设计 213 5.2.4 rb-tree 的迭代器 214 5.2.5 rb-tree 的数据结构 218 5.2.6 rb-tree 的构造与内存管理 221 5.2.7 rb-tree 的元素操作 223 元素插入动作 ...

    能使用boost.python的MinGw(GCC)动态链接库

    运行上面的命令之前,请确保hello_ext.cpp,libboost_python-mgw45-1_49.dll,libboost_python-mgw45-d-1_49.dll和 python27.dll在同一个目录. hello_ext.pyd就是python中能直接使用的动态链接库,windows一般以dll为...

    Linux下clock计时函数学习

    平时在Linux和Winows下都有编码的时候,移植代码的时候免不了发现一些问题。  1. 你到底准不准?关于clock()计时函数  首先是一段简单的测试代码,功能为测试从文本文件读取数据并赋值给向量后打印输出的运行...

    STL 源码剖析(侯捷先生译著)

    5.2.2 一个由上而下的程序 212 5.2.3 RB-tree 的节点设计 213 5.2.4 RB-tree 的迭代器 214 5.2.5 RB-tree 的数据结构 218 5.2.6 RB-tree 的构造与内存管理 221 5.2.7 RB-tree 的元素操作 223 元素插入动作 ...

    离散信道的迭代计算C++程序

    #include #include #include #include using namespace std; #define FLOAT_MINUS_PRECISION 0.00001 typedef vector*> VEC_PFLOAT; ... //迭代计算信道容量,参数值为信源,信宿符号... vPhi.push_back(pfTemp); }

    基于C++开发的射击游戏

    子弹的实现可以使用STL中的vector,当按下开火键时发出一颗子弹,就往vector中添加一个结点;当子弹飞出窗口或击中敌机时,再将结点从vector中删除。每帧游戏画面中子弹飞行时只需将vector中的所有子弹进行处理、...

Global site tag (gtag.js) - Google Analytics