CПоинтер CPointers в Котлин / Родной - PullRequest
0 голосов
/ 11 апреля 2020

Я хотел бы передать переменную моей функции C с типом данных char**.

Как передать такую ​​переменную с помощью Kotlin / Native?

Другими словами как инициализировать и использовать вложенные CPointers в Kotlin / Native?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Я нашел один способ, который работает. Тем не менее, это выглядит не элегантно.

val tmp = "".cstr.getPointer(MemScope())
val a = listOf(tmp).toCValues().getPointer(MemScope())
0 голосов
/ 13 апреля 2020

Согласно документации , char** должно быть сопоставлено с CPointer<CPointerVar<ByteVar>>. Итак, если вы хотите выделить указатель таким образом, что-то вроде этого должно работать:

memScoped {
    val charTwoStars = allocPointerTo<CPointerVar<ByteVar>>()
}

Поскольку я выделил это внутри блока memScoped, эта переменная будет доступна в блоке, освобожденном как как только блок заканчивается.

...