Я новичок в Kotlin/Native! Я хотел бы создать массив CPointers, чтобы передать его, но мне трудно его создать.
В C/C++ void* a[] = {test} достаточно. Но я не могу сделать то же самое в K/N.
Я пробовал val a: CValuesRef<out COpaquePointerVar> = cValuesOf(test)
Но это приводит к следующей ошибке:
Пытался просмотреть документы и найти их в Интернете, но ни один из них не дал правильного ответа.
Любая помощь приветствуется!
Так что я в основном сделал то, что хотел, используя StableRef
on_exit(staticCFunction { _, argsPtr ->
val argsStableRef = argsPtr!!.asStableRef<List<COpaquePointer>>()
val args = argsStableRef.get()
// Cleanup code
argsStableRef.dispose()
}, StableRef.create(listOf(/* All the pointers */)).asCPointer())
По сути, преобразование List<COpaquePointer> в StableRef и извлечение из него указателя, затем, при необходимости, удаление ссылки с помощью asStableRef и после этого удаление, чтобы обеспечить освобождение памяти.