我不安全的方法接受一個集合byte[]
秒。所有這些byte[]
都是相同的大小。初始化字節*集合在C#
我需要遍歷所有這些,尋找一定的模式。搜索本質上是重新詮釋鑄風格:在每個偏移,我需要考慮的值就好像它是一個浮動,雙,短,一個int,等於是得到一個byte*
每個輸入byte[]
和增加它的每個迭代似乎是一種自然的方法。
不幸的是我無法找到任何方式來創建的byte*
集合 - 或更具體地說,從陣列的集合初始化。有任何想法嗎?
這裏的任務的有點做作的版本:
static unsafe void SearchIteration(List<byte[]> arrays, byte[] resultArr)
{
fixed (byte* resultFix = resultArr)
{
byte* resultPtr = resultFix;
byte*[] pointers = new byte*[arrays.Count];
<some code to fix all the arrays and store the pointers in "pointers">
int remaining = resultArr.Length;
while (remaining > 0)
{
<look at resultPtr and each of the pointers and update *resultPtr>
remaining--;
for (int i = 0; i < pointers.Length; i++)
pointers[i]++;
}
}
}
本質的問題是如何與arrays
地址初始化pointers
,而釘扎陣列,使GC不動他們。
究竟什麼是您的對象的集合,什麼是字節[]? – Raynos 2010-08-24 20:23:16
你真的需要讓所有的byte []數組中在同一時間被固定,或者你可以處理這些接二連三? – dtb 2010-08-24 20:28:22
@Raynos對不起,我簡化了一下,忘了刪除一個對象的引用。現在走了。只是'byte []'s。 – 2010-08-24 20:32:01