получение сообщения об ошибке типа «UnsafeMutableRawPointer» не имеет подписных элементов » - PullRequest
0 голосов
/ 10 октября 2018

Мне просто нужно выделить память и установить значения там. Вот мой код.

 let radius:Float = 5.79
 let sigma:Float = radius / 2
 let size:Int = Int((round(radius) * 2) + 1)

 var weights:UnsafeMutableRawPointer = malloc(MemoryLayout<Float>.size * size * size)

 weights[some index] = some vale

, но я получаю сообщение об ошибке в быстрой версии 4, говорящее "UnsafeMutableRawPointer не имеет нижних индексов"

Как я могу это исправить. Любые идеи, пожалуйста

1 Ответ

0 голосов
/ 10 октября 2018

Вам лучше проверить официальную документацию UnsafeMutableRawPointer

Вы можете написать что-то вроде этого:

let radius:Float = 5.79
let sigma:Float = radius / 2
let size:Int = Int((round(radius) * 2) + 1)

var weights:UnsafeMutableRawPointer = malloc(MemoryLayout<Float>.size * size * size)

weights.storeBytes(of: some value, toByteOffset: some offset, as: SomeType.self)

Или лучше использовать UnsafeMutablePointer<Float>вместо этого, если все элементы Float.

var weights:UnsafeMutablePointer<Float> = UnsafeMutablePointer.allocate(capacity: size * size)

weights[some index] = some vale
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...