首页 > 解决方案 > 收到“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[some index] = some vale

但我在 swift 版本 4 中收到一条错误消息,说“UnsafeMutableRawPointer 没有下标成员”

我该如何解决这个问题。请有任何想法

标签: mallocswift4

解决方案


你最好查看官方文档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

推荐阅读