arrays - 如何在不复制的情况下从 UnsafeBufferPointer 创建数组?

标签 arrays swift memory buffer swift2

我遇到了一个棘手的情况,我有一个非常大的内存,由一个 UnsafeBufferPointer 表示,我需要将它表示为一个 Array。现在,Swift 标准库提供了一个初始化器,可以复制任何给定序列中的元素,但是它无法直接提供底层存储。

有什么方法可以在避免复制的同时将 UnsafeBufferPointer“转换”为 Array

最佳答案

struct UnsafeBufferPointer<Element> { ... }

A non-owning pointer to buffer of Elements stored contiguously in memory, presenting a Collection interface to the underlying elements.

答案是否定的,不可能的。

init(start: UnsafePointer<Element>, count: Int)

Construct an UnsafePointer over the count contiguous Element instances beginning at start.

构造函数不会在任何地方复制任何东西。构造函数不创建任何内存分配

关于arrays - 如何在不复制的情况下从 UnsafeBufferPointer 创建数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33852816/

相关文章:

ios - 子类化 UIView 时如何检测箭头键?

linux - Linux中如何获取进程的页表内容?

javascript - 如何向对象数组中插入/添加对象?

Javascript 对象的 shift()

c++ - 从 txt 文件行中获取多维数组

ios - View 中有多个圆角

ios - 获取 UITesting Xcode 7 中表格每个部分的行数

ios - 为什么 iOS 设备上的 glGenerateMipmap() 会占用如此多的客户端内存?

javascript - 在 Three.js 上渲染重型模型/网格

ruby-on-rails - rails |循环和保存 json post 数据的优雅方式