Вывести одномерный массив из случайных чисел (сделать через указатели) - C#
Формулировка задачи:
Добрый вечер всем. Необходимо вывести одномерный массив из случайных чисел, НО надо сделать через указатели (обязательно должны присутствовать unsafe и fixed). Читаю про указатели, но пока не понимаю. Вот эта задачка, но БЕЗ указателей. Возможно ли ее переделать как-нибудь?
int[] arr = new int[11];
int i = 0;
Random rnd = new Random();
int rndnumber;
for (i = 0; i < arr.Length; i++)
{
rndnumber = rnd.Next(-15, 15);
arr[i] = rndnumber;
Console.Write(arr[i] + " ");
}Решение задачи: «Вывести одномерный массив из случайных чисел (сделать через указатели)»
textual
Листинг программы
unsafe static void Main(string[] args)
{
Random r = new Random();
int *[] a = new int*[3];
// Заполняем из стека/"управляемой памяти"
int b;
a[0] = &b;
b = 111;
for (int i = 1; i < 3; i++ )
{
// Выделяем память в неуправляемой куче
a[i] = (int *)Marshal.AllocHGlobal(sizeof(int));
// Пишем туда число
*a[i] = r.Next(10);
}
for (int i = 0; i < 3; i++ )
{
Console.WriteLine(*a[i]);
// Уничтожаем объекты
if (i != 0) // нулевой элемент в стеке, будет ошибка
Marshal.FreeHGlobal((IntPtr)a[i]);
}
Console.ReadLine();
}