如何在push_back进入向量后释放struct指针元素

时间:2013-08-07 12:54:59

标签: c++ visual-c++

嗨,每一个我都有问题将struct插入到stuct向量中... 请参阅以下代码

struct stLine
{
double** ptrRoadCords;
int iSize;
};

//我有这个结构,矢量是

std::vector<stLine> m_vecStLine;

//我正在创建临时结构

stLine line;

line.ptrRoadCords = new double*[cnt];
for ( int i = 1; i < cnt-1; i++ )
{
    line.ptrRoadCords[i-1] = new double[2];
    line.ptrRoadCords[i-1][0] = ptrCords[i-1][0];
    line.ptrRoadCords[i-1][1] = ptrCords[i-1][1];
}

m_vecStLine.push_back(line);

//所以它的工作完美但导致了meomory泄漏

//所以我把释放代码

if (line.ptrRoadCords != NULL)
{
   for (int i = 0; i < cnt-2; i++)
   {
      delete[]line.ptrRoadCords[i];
   }
   if(line.ptrRoadCords)
      delete[]line.ptrRoadCords;
}

但由于此应用程序崩溃,因为它清除了vector元素,因为它的插入引用

请帮我解决此问题

提前谢谢你

0 个答案:

没有答案