Вывести одномерный массив из случайных чисел (сделать через указатели) - 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();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы