C#中固定编译时不确定数量的变量(相关话题fixed固定多个数组)
以交错数组byte[][]为例。
fixed无法固定byte[][],只能在编译时固定确定数量的变量。
交错数组byte[][]中的每一个byte[]可以采用GCHandle进行固定。
int n = 10; var arrays = new byte[n][]; var arrHandles = new GCHandle[n]; var size = 100; try { for (int i = 0; i < n; i++) { arrays[i] = new byte[size]; srcPtrs[i] = GCHandle.Alloc(srcBgras, GCHandleType.Pinned); } //所有数组的指针 var ptrs = arrHandles.Select( handle => handle.AddrOfPinnedObject()).ToArray(); } finally { for (int i = 0; i < n; i++) arrHandles[i].Free(); }
本文作者:陈百川,欢迎留言讨论。转载请注明原文链接:https://www.cnblogs.com/buachuan/p/17614600.html

浙公网安备 33010602011771号