Kotlin/Native, как создать массив CPointers?

Я новичок в Kotlin/Native! Я хотел бы создать массив CPointers, чтобы передать его, но мне трудно его создать.

В C/C++ void* a[] = {test} достаточно. Но я не могу сделать то же самое в K/N.

Я пробовал val a: CValuesRef<out COpaquePointerVar> = cValuesOf(test)

Но это приводит к следующей ошибке:

Пытался просмотреть документы и найти их в Интернете, но ни один из них не дал правильного ответа.

Любая помощь приветствуется!

Почему в Python есть оператор &quot;pass&quot;?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
343
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Так что я в основном сделал то, что хотел, используя 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 и после этого удаление, чтобы обеспечить освобождение памяти.

Другие вопросы по теме