Eigen RowVector超出范围会产生“运行时检查失败#2-变量X周围的堆栈已损坏”

asaf92

我正在使用Eigen库,并收到以下非常奇怪的异常:

运行时检查失败#2-变量'myVariableCopy'周围的堆栈已损坏。

它来自以下代码:

void get_new_handle_locations()
{
    int count = 0;
    for (long vi = 0; vi < V.rows(); ++vi)
    {
        if (handle_id[vi] >= 0)
        {
            Eigen::RowVector3f myVariable = V.row(vi).cast<float>();

            if (handle_id[vi] == moving_handle)
            {
                Eigen::RowVector3f myVariableCopy = myVariable;
                myVariable -= handle_centroids.row(moving_handle).cast<float>();
                igl::rotate_by_quat(myVariable.data(), rotation.data(), myVariableCopy.data());
                myVariable = myVariableCopy;
                myVariable += handle_centroids.row(moving_handle).cast<float>();
            }

            handle_vertex_positions.row(count++) = myVariable.cast<double>();
        }
    }
} // This is where the exception is thrown

循环结束后会引发异常,并且条件在最后约100次迭代中均未通过,因此,此时应确保变量超出范围

我正在使用VS 2017。

我抑制了此异常,但是我应该担心还是VS错误?

asaf92

损坏的原因是期望具有4维的igl::rotate_by_quat调用,但已将其声明为3维向量。igl::quat_multgoalPositionCopy.data()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

变量周围的堆栈...已损坏

运行时检查失败#2-变量'foo'周围的堆栈已损坏

变量周围的堆栈已损坏

变量'x'周围的堆栈已损坏

C-“运行时检查失败#2-围绕变量'str'的堆栈已损坏。”

变量'...'周围的堆栈已损坏

变量'x'周围的堆栈已损坏

C ++:该代码可编译,但引发运行时检查失败#2-变量'num'周围的堆栈已损坏。发生了

得到一个错误,指出“运行时检查失败#2-变量'rejected'周围的堆栈已损坏。(Visual Studio)

C / C ++运行时检查失败#2-变量'gradeLetter'周围的堆栈已损坏。Visual Studio2019。如何解决此问题?

运行时检查失败#4-此函数保留的_alloca内存周围的堆栈区域已损坏?

运行时检查失败#2-变量'sortObject'周围的堆栈已损坏。怎么修?

变量a周围的堆栈已损坏

运行时检查失败#2-变量'd'周围的堆栈已损坏

基本的C ++错误。运行时检查失败#2-变量'matrix'周围的堆栈已损坏

C ++-运行时检查失败#2-围绕变量'sourceCount'的堆栈已损坏

变量周围的堆栈已损坏

为什么会出现运行时检查失败#2-变量'x'周围的堆栈已损坏?

运行时检查失败#2-围绕变量'char'的堆栈已损坏

堆栈周围变量已损坏

运行时检查失败#2-变量“ primes”周围的堆栈已损坏

运行时检查失败#2-变量'result'周围的堆栈已损坏

运行时检查失败 #2 - 变量“obj”周围的堆栈已损坏

运行时检查失败 #2 - 变量“numberchoices”周围的堆栈已损坏

运行时检查失败 #2 - 变量“...”周围的堆栈已损坏

运行时检查失败 #2 - 变量“month1”周围的堆栈已损坏

运行时检查失败 #2 - 变量“myArray”周围的堆栈已损坏。- 似乎无法弄清楚如何消除此错误

调试信息:运行时检查失败 #2 - 变量“IpNetRow2”周围的堆栈已损坏

C - “运行时检查失败 #2 - 变量 'cstringValue' 周围的堆栈已损坏。”