如何在Kotlin/Native中创建原始数据类型的CPointer?
How to create CPointer of primitive data type in Kotlin/Native?
分配和获取结构指针非常简单:
memScoped {
val str: StructType = alloc<StructType>()
val strPtr: CPointer<StructType> = str.ptr
}
但我正在努力分配或获取 Int
、UInt
、Long
、ULong
和其他原始数据类型的指针。
这些类型都没有任何扩展:
val intData = 5
intData.ptr // <-- no extension like that
搜索了很多,但似乎没有这方面的文档。
非常感谢任何帮助:)
Michael 完全正确,Kotlin 原始类型不应该那样工作。正如 documentation 中所解释的那样,在这种情况下应该使用表示左值的特殊类型。这样的事情应该有效:
memScoped {
val i = alloc<IntVar>()
i.value = 5
val p = i.ptr
}
分配和获取结构指针非常简单:
memScoped {
val str: StructType = alloc<StructType>()
val strPtr: CPointer<StructType> = str.ptr
}
但我正在努力分配或获取 Int
、UInt
、Long
、ULong
和其他原始数据类型的指针。
这些类型都没有任何扩展:
val intData = 5
intData.ptr // <-- no extension like that
搜索了很多,但似乎没有这方面的文档。
非常感谢任何帮助:)
Michael 完全正确,Kotlin 原始类型不应该那样工作。正如 documentation 中所解释的那样,在这种情况下应该使用表示左值的特殊类型。这样的事情应该有效:
memScoped {
val i = alloc<IntVar>()
i.value = 5
val p = i.ptr
}