c++ - Ruby:取消引用指针

标签 c++ ruby-on-rails ruby pointers

如何在 Ruby 中取消引用指针?

我正在使用 FFI 调用一些 C/C++ DLL 函数。其中一个函数返回一个整数数组 (int*)。

extern "C" WIN32PROJECT3_API int* TestData()
{
    int* v;

    v = (int*)malloc(sizeof(int)* 1000);

    v[3] = 123456;

    return v;
}

我在 Ruby 中得到了指针,但是当我尝试这样做时

v = TestModule.TestData();
puts v[3]

我得到的是:

#<FFI::Pointer address=0x700f5e>

这很好,因为这是指针的实际值。我只需要取消引用它就可以获得值“123456”

最佳答案

使用read_int

例子:

v = TestModule.TestData();
puts v[3].read_int

关于c++ - Ruby:取消引用指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28738795/

相关文章:

ruby-on-rails - rails/Postgres : column must appear in the GROUP BY clause

ruby-on-rails - Activeadmin:在 bool 字段上创建范围

ruby-on-rails - rails 3,回形针(和 formtastic) - 删除图像附件

ruby - 什么时候使用嵌套类和嵌套在模块中的类?

ruby - 如何监听正在运行的 Linux 进程?

c++ - 在模板中引用模板化函数

c++ - 在 C++ 和 Armadillo 中将 sqrt(-1) 乘以矩阵

C++ 类模板复制构造函数返回类型

c++ - 什么是 Glew、Glut 和 glfw3?哪些在 Opengl 3/4 中已被弃用

ruby - 无法在centos上手动安装chef-server旧版本