שימוש ב-unsafe mode ב-C# core
שלום.
ב-C# core,
אני מקצה שטח זיכרון למשתנה מסוג מערך ushort בגודל 1G.
אני רוצה להעביר אותו למשתנה מסוג מערך short בגודל 1G.
ניסיתי את הקוד להלן, אך ללא הועיל:
כיוון שמחזיר לי הודעת שגיאה:
No parameterless constructor defined for this object.
חשוב לי לא להקצות שטח זיכרון נוסף, וחשוב לי להחזיר למשתנה managed שאוכל להשתמש בו בקוד.
לו היה union כמו ב-C++ (רק שתומך ב-array) זה היה מעולה.
איך ניתן לעשות כן?
תודה.
שלום.
ב-C# core,
אני מקצה שטח זיכרון למשתנה מסוג מערך ushort בגודל 1G.
אני רוצה להעביר אותו למשתנה מסוג מערך short בגודל 1G.
ניסיתי את הקוד להלן, אך ללא הועיל:
קוד:
unsafe
{
ushort[] x = new ushort[1000000000];
fixed (ushort* y = &x[0])
{
IntPtr p = (IntPtr)y;
short[] s = (short[])Marshal.PtrToStructure(p, typeof(short[]));
}
}
No parameterless constructor defined for this object.
חשוב לי לא להקצות שטח זיכרון נוסף, וחשוב לי להחזיר למשתנה managed שאוכל להשתמש בו בקוד.
לו היה union כמו ב-C++ (רק שתומך ב-array) זה היה מעולה.
איך ניתן לעשות כן?
תודה.