繁体   English   中英

python memory 的特征 map

[英]Eigen map of python memory

我正在尝试通过调用确实使用特征的 C++ function 来优化一些 python 代码。 我为此使用ctypes。 我的 numpy 数组作为浮点数传入*(基于此示例: https://github.com/nicolamontecchio/ctypes-eigen-numpy )这适用于输入 ZA3CBC3F9D0CE2F2C1554E1 的麻烦,但 IDM62C19CZE1

基本上它看起来像这样:

void some_function(..., int32_t** results) {
    for (int32_t i = 0; ...) {
        Eigen::Map<Eigen::RowVectorXi> eigen_result(results[i], 1, size));

        eigen_result = Eigen::RowVectorXi::Zero(size);
    }
}

这有效,因为我可以在 python 中打印 function 的 output。 但是,在 function 的末尾,我收到以下错误:

double free or corruption (!prev)

例如,在执行此操作时不会发生此错误

eigen_result(0) = 5.0;

因此,该分配似乎并没有真正将数据填充到我的数据指针中。 有人可以向我解释这个分配应该如何发生,以便数据实际上填充到我的指针中,而不分配一些被释放两次的新指针?

谢谢

事实证明我计算错了size变量。 这是有道理的,这会导致 memory 问题......

本征 Map 按预期工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM