我处于一个棘手的情况,我有一个非常大的内存,用一个UnsafeBufferPointer表示,我需要把它表示为一个Array。现在,Swift标准库提供了一个初始值设定项,可以从任何给定的序列中复制元素,但是它没有提供直接提供底层存储的方法。
是否有任何方法可以在避免复制的同时将UnsafeBufferPointer强制转换为Array

最佳答案

struct UnsafeBufferPointer<Element> { ... }

指向连续存储在
内存,向基础元素提供集合接口。
答案是不,这是不可能的。
init(start: UnsafePointer<Element>, count: Int)

在count个连续元素实例上构造unsafepointer
从开始时开始。
构造函数不会在任何地方复制任何内容。构造函数没有创建任何内存分配

09-26 18:04