[英]Marshal copying struct to byte array comes out as 0 for each byte
我有一個采用類型並將其轉換為字節數組的方法。 但是由於某種原因,字節數組結果在每個索引中總是以0結尾。
我不知道為什么會這樣,我正在傳遞我自己的結構,該結構確實設置了值,我正在檢查該值,所以我不應該為每個索引獲取0。
這是我轉換為字節數組的方法:
public static bool TryGetBytes<T>(T obj, ref byte[] arr)
{
int size = Marshal.SizeOf(obj);
if (size > arr.Length)
{
Debug.Log("Size error!" + size + " : "+arr.Length);
return false;
}
IntPtr ptr = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(obj, ptr, true);
Marshal.Copy(ptr, arr, size, 0);
Marshal.FreeHGlobal(ptr);
return true;
}
我在這里可能做錯了什么嗎? 我是否需要ref
? 我嘗試沒有ref
,沒有發生任何差異。 所以我有點困惑如何使它工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.