gpt4 book ai didi

dart - 检查Dart FFI中的nullptr

转载 作者:行者123 更新时间:2023-12-03 03:39:46 24 4
gpt4 key购买 nike

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

当前的方法是这样的:

ffi.Pointer<Thing> thing = ... // can potentially return null
if(thing == ffi.nullptr) {
...

但是,当然,这给出了“带有不相关类型的引用的相等运算符 ==调用”。警告信息。

该API仍然很新,我不确定该如何处理。我也可能对此考虑过度,并且有一个非常简单的答案。

最佳答案

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

Equality for Pointers only depends on their address



https://api.dart.dev/dev/2.6.0-dev.0.0/dart-ffi/Pointer-class.html

因此,您可以做的只是比较两个指针的地址:
ffi.Pointer<Thing> thing = ... // can potentially return null
if(thing.address == ffi.nullptr.address) {
...

实际上,空指针只是指向地址0的指针:
final Pointer<Void> nullptr = Pointer.fromAddress(0)

https://api.dart.dev/dev/2.6.0-dev.0.0/dart-ffi/nullptr.html

关于dart - 检查Dart FFI中的nullptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57940618/

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