zoukankan      html  css  js  c++  java
  • vector中数据释放崩溃问题

    struct LINE
    {
    	char securityID[32];       /*!< 证券代码 */
    	int64_t dateTime;		   /*!< 日期时间(日期变化)YYYYMMDDhhmmss */
    	double openPx;             /*!< 开盘价 */
    	double highPx;             /*!< 最高价 */
    	double lowPx;              /*!< 最低价 */
    	double lastPx;             /*!< 最新价 */
    	double avgPx;              /*!< 均价 */
    	int64_t volume;            /*!< 成交量 */
    	double amount;             /*!< 成交金额 */
    	int32_t tradeDay;          /*!< 交易日期 */
    	short lineNo;			   /*!< 走势序列号 */
    	virtual ~LINE() {} //就是这行引起崩溃
    };
    

      

    LINE* pLine = new LINE;
    	delete pLine;
    // 这样释放不会崩溃
    

      

    vector<LINE*> vLineTmp;
    	for (int j = 0; j < 300; ++j)
    	{
    
    		LINE* pLine = new LINE;
    		memset(pLine, 0, sizeof(LINE));
    		sprintf_s(pLine->securityID, "%d-%d", 0, j);
    		vLineTmp.push_back(pLine);
    	}
    	
    	for (unsigned int i = 0; i < vLineTmp.size(); ++i)
    	{
    		delete vLineTmp[i]; // 崩溃
    	}
    	vLineTmp.clear();
    

      如果 line结构体带上析构函数,在vector中释放指针将会奔溃。具体原因不知

  • 相关阅读:
    Python数据爬虫,爬链家的二手房信息
    驼峰命名法
    变量
    use strict(变得严格)
    注释
    分号(line break:分行符号)
    使用外部js文件
    confirm
    prompt
    https和http的区别
  • 原文地址:https://www.cnblogs.com/a9999/p/11982720.html
Copyright © 2011-2022 走看看