在循环中将 Eigen 对象分配给 C 数组时出现内存错误

问题描述 投票:0回答:0

我遵循了这个建议在这里像这样:

ArrayXd simple_constraint = ArrayXd::Ones(10);
double *b = simple_constraint.data();

然后

b
被传递给C api(顺便说一下CGAL)。但是,此操作会重复并在循环内发生,因此我的代码实际上如下所示:

for(int i=0;i<10;i++){
    //do something 
    ArrayXd simple_constraint = someotherobject(i);
    double *b = simple_constraint.data();
}

在一次迭代后,即第二次对

C
数组进行赋值时,我收到此错误:

Process finished with exit code 136 (interrupted by signal 8: SIGFPE)

有人可以帮我找出我做错了什么吗?我是否需要重新分配内存、空闲内存等?我倾向于依靠

C++
来进行内存管理,但被迫通过其他很棒的
CGAL
API 传递指针。

谢谢!

c++ c c++11 cgal
© www.soinside.com 2019 - 2024. All rights reserved.