我需要能够做到以下几点:
public struct entry_h
{
public ulong fileid;
public byte hash[20];
};
与C / C ++一样
我正在对一个结构进行不安全的指针,这就是为什么我需要能够做到这一点。 :/
entries[i].ehash = *(entry_h*)(src + header_size + (R64(pup->entryCount) * 0x20) + (i * 0x20));
答案 0 :(得分:0)
如果你在C#中使用unsafe关键字,结构体通过fixed关键字支持固定大小的缓冲区。
http://msdn.microsoft.com/en-us/library/zycewsya%28v=vs.80%29.aspx
实施例:
public fixed byte hash[20];
否则,通过安全代码,它将是这样的:
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] hash;