Як виділити пам'ять для матриці?

Простий спосіб – це виділити блок пам'яті розміром r*c і отримати доступ до його елементів за допомогою простої арифметики вказівника. Ми можемо створити масив покажчиків розміром r. Зауважте, що, починаючи з C99, мова C дозволяє використовувати масиви змінного розміру. Після створення масиву покажчиків ми можемо динамічно виділяти пам'ять для кожного рядка.

Щоб виділити пам'ять для масиву, виконайте такі дії:

  1. Оголошіть вказівник, який вказуватиме на перший елемент одновимірного масиву.
  2. Використовуйте malloc, щоб виділити пам'ять для потрібної кількості елементів.
  3. Призначте вказівнику адресу блоку пам’яті, яку повертає malloc.

Наступний фрагмент коду виконує динамічний розподіл такої матриці: int **M; M = malloc (m * sizeof (int *)); for (int i = 0; i < m; ++i) M[i] = malloc (n * sizeof (int)); Отже, M[i][j] є елементом M, що знаходиться на перетині рядка i та стовпця j.

Використовуйте spalloc для ініціалізації розрідженої матриці розміром 20 на 20 із усіма нулями з місцем для 100 ненульових елементів. n = 20; S = spalloc(n,n,5*n); Потім використовуйте цикл for, щоб заповнювати стовпці S по одному із середнім значенням не більше п’яти ненульових елементів на стовпець.

Щоб виділити динамічну пам'ять, ви можете використовуйте функції malloc() або calloc().. Для їх використання необхідно включити заголовок <stdlib.h>.

Related Post

Відкритий лісВідкритий ліс

Відкритий ліс Державі відшкодують понад 1 млн грн за незаконну порубку лісу на Київщині – Незаконна вирубка дерев в лісовому господарстві на Київщині. Фото (ілюстративне): ДП “Ліси України”/Facebook Київська обласна