使用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
的整个点都会失效。
答案 0 :(得分:0)
我在Copy data from from IntPtr to IntPtr
中找到了答案因此,要回答我自己的问题,必须将数组固定一秒钟(使用fixed
关键字),这样一来,手边就有两个指针。 Buffer.MemoryCopy
不会有偏移量重载,但是几乎不会用指针运算来达到预期的效果。