【发布时间】:2018-10-10 06:38:07
【问题描述】:
使用stackalloc 内存时,我想将其内容复制到数组中/从数组中复制。我正在寻找类似于Buffer.BlockCopy 的东西,它可以让我传递源数据中的偏移量和目标数据中的偏移量。
stackalloc内存有这样的方法吗?或者一般来说——如何在不逐个元素迭代的情况下一次性复制内存?
int i = 0;
double* window = stackalloc double[max_window_size];
for (int x = 0; x < width; ++x)
{
window[i] = array[x, y];
++i;
}
重要提示:我询问的数组已经存在。所以我不能从stackalloc 内存创建一个数组,然后将该数组复制到现有数组,因为它首先会使使用stackalloc 的整个点无效。
【问题讨论】:
-
您可能想研究一下使用 Span blogs.msdn.microsoft.com/mazhou/2018/03/25/…
-
请向我们展示一个
stackallocminimal reproducible example,它通过一次迭代一个副本来进行复制,我们将向您展示如何做得更好。 -
@Enigmativity,在这里我从二维数组复制一行到堆栈上分配的“窗口”。我想一次性将内容复制到
stackalloc内存。 -
@astrowalker 它仍然不是一个完整的例子......你还没有定义数组或 y
-
@astrowalker 我创建了一个新问题来讨论使用 Span 进行切片而不复制内存 stackoverflow.com/questions/52750582/…
标签: c# arrays stackalloc