如何将stackalloc内存复制到数组或从数组复制?

时间:2018-10-10 06:38:07

标签: c# arrays stackalloc

使用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的整个点都会失效。

1 个答案:

答案 0 :(得分:0)

我在Copy data from from IntPtr to IntPtr

中找到了答案

因此,要回答我自己的问题,必须将数组固定一秒钟(使用fixed关键字),这样一来,手边就有两个指针。 Buffer.MemoryCopy不会有偏移量重载,但是几乎不会用指针运算来达到预期的效果。