Я пишу виртуальную машину на C# и использую класс Marshal, например, для выделения и освобождения памяти:
Код: Выделить всё
public ulong Allocate(int allocationSize) = (ulong)Marshal.AllocHGlobal(allocationSize);
public void Free(ulong address)
{
Marshal.FreeHGlobal((IntPtr)address);
}
Мое внимание привлек тот факт, что существует класс NativeMemory, который также имеет методы Alloc и Free. Они делают то же самое? И если нет, то когда следует использовать каждый из них.
Подробнее здесь:
https://stackoverflow.com/questions/769 ... tivememory