gpt4 book ai didi

c - 将指向 C 结构的指针存储为整数

转载 作者:行者123 更新时间:2023-12-01 13:29:24 25 4
gpt4 key购买 nike

我一直致力于使用 R 中的 C 库,方法是使用库的功能编写自定义 C 函数,然后使用 .C 接口(interface)从 R 访问这些 C 函数。

在一些 C 代码中,我为一些自定义结构分配了空间,并希望在 R 中存储指向它们的指针,这样我就可以在对 .C 的连续调用中使用这些结构。在玩弄 .C 函数时,我注意到我可以简单地将指向 C 结构的指针转换为 int 并将其作为整数存储在 R 中。通过 .C 将此整数传递给以后的调用效果很好,我可以跟踪我的结构并毫无问题地使用它们。

我有点幼稚的问题:在 R 中以整数形式存储这些指针有什么问题?它工作正常,所以我假设一定有一些缺点,但我找不到任何关于它的信息。

最佳答案

即使在 64 位平台上,R 的整数也是 32 位的。因此,在 64 位系统上工作时,这将不起作用(指针将是 64 位)。

R 有这方面的功能。参见 the 'Writing R Extensions' manual, the section on 'External pointers and weak references' .

如果您愿意切换到 C++(这并不意味着您必须重写所有代码),您可以使用 Rcpp 包,它可以使这更容易。参见示例 External pointers with Rcpp

关于c - 将指向 C 结构的指针存储为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46768872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com