我们可以使用从C#程序调用的C ++库中的向量吗?

时间:2015-12-01 04:52:06

标签: c# c++ bad-alloc

我有一个使用C ++库的C#应用​​程序。在库的一个功能中,我正在构建一个类对象的向量。但是,当我使用push_back()将对象添加到向量时,我收到bad_alloc错误。任何人都可以解释为什么会发生这种情况吗?

我的部分代码如下:

vector< EVector > CalibrationHelper::calcCalibrationPoints( ..... )
                                           {
std::vector< EVector > vertices;

if(h > 1 && v > 1)
{
    ....
    if (h >= 2 && v >= 2)
    {
       for (int x = 0; x < h; x++)
       {
           for (int y = 0; y < v; y++)
           {
               EVector p;

               p.x = x * ( bW + marginX ) + marginXLeft;
               p.y = y * ( bH + marginY ) + marginy;

               p.x += shiftX;
               p.y += shiftY;
                try{
               vertices.push_back(p);
               }catch(std::bad_alloc& ba){
                   std::cerr << "bad_alloc caught: " << ba.what() << '\n';
               }

           }
       }
    }
}

return vertices;
}

在第一个push_back()之后,向量vertices的大小会在应该增加一个时变为非常大的数字。

0 个答案:

没有答案