PDA

View Full Version : سوال: تبدیل یک Struct به بایت



water_lily_2012
شنبه 27 مهر 1392, 13:09 عصر
سلام
تابع زیر یک Struct را به بایت تبدیل می کند.
آیا برای تبدیل داره از حافظه استفاده میکنه و مقادیر را داخل حافظه کپی و دوباره در آرایه میریزه.
خواهشا یکی توضیح بده برای تبدیل داره از کجا استفاده می کنه.
در اینجا Header ساختار من هست.


public static byte[] StructToBytes(Header header)
{
byte[] arr = new byte[2048];
IntPtr ptr = Marshal.AllocHGlobal(2048);
Marshal.StructureToPtr(header, ptr, true);
Marshal.Copy(ptr, arr, 0, 2048);
Marshal.FreeHGlobal(ptr);
return arr;
}

تشکر

water_lily_2012
یک شنبه 28 مهر 1392, 10:59 صبح
سلام
راهی هست که من Struct را به بایت تبدیل کنم آن هم بدون استفاده از

Marshal.Copy(ptr, arr, 0, 2048);
یعنی با استفاده از pointer و کد نویسی در unsafe.

تشکر