dart FFI-指向指针的指针

问题描述

在使用ffi库的dart中,我们可以通过两种方式创建Pointer对象

Pointer<NativeType> foo = allocate();
Pointer<NativeType> bar = Pointer.fromAddress(int address);

我们还可以使用int address = foo.address();

获取Pointer对象的地址

如果我们想通过另一个final bar = Pointer.fromAddress(foo.address);

的Pointer对象创建一个Pointer,

bar的结果类型将是Pointer<Pointer<Double>>还是bar只是foo的副本,其中foo.address == bar.address

如果它只是克隆了Pointer,我们如何创建指向另一个Pointer的Pointer?

解决方法

这是一个例子:

    Pointer ptrToCopy; // i will assume that you have this already...
    Pointer<Pointer<NativeType>> _ptrToPtr = allocate();
    _ptrToPtr.value = Pointer.fromAddress(ptrToCopy.adress);