检查Dart FFI中是否存在空PTR

检查Dart FFI中是否存在空PTR,dart,null,ffi,nullptr,Dart,Null,Ffi,Nullptr,使用FFI检查Dart中的指针是否为空指针的最佳方法是什么 目前的做法是: ffi.Pointer<Thing> thing = ... // can potentially return null if(thing == ffi.nullptr) { ... ffi.Pointer thing=…/可能返回null if(thing==ffi.nullptr){ ... 但是,当然,这会给出“使用不相关类型的引用调用相等运算符=的警告消息” API仍然很新,我不确定如何实现。

使用FFI检查Dart中的指针是否为空指针的最佳方法是什么

目前的做法是:

ffi.Pointer<Thing> thing = ... // can potentially return null
if(thing == ffi.nullptr) {
 ...
ffi.Pointer thing=…/可能返回null
if(thing==ffi.nullptr){
...
但是,当然,这会给出“使用不相关类型的引用调用相等运算符
=
的警告消息”


API仍然很新,我不确定如何实现。我也可能想得太多了,有一个非常简单的答案。

好吧,我还没有尝试dart:ffi,但是从==的API文档中,您可以看到:

指针的相等性仅取决于它们的地址

因此,您可以做的只是比较两个指针的地址:

ffi.Pointer<Thing> thing = ... // can potentially return null
if(thing.address == ffi.nullptr.address) {
 ...
ffi.Pointer thing=…//可能返回null
if(thing.address==ffi.nullptr.address){
...
实际上,空指针只是指向地址0的指针:

final Pointer<Void> nullptr = Pointer.fromAddress(0)
final Pointer nullptr=Pointer.fromAddress(0)

Duh,很简单的解决方案!如果我知道如何阅读就好了……谢谢。)