@jett
Для реализации динамического массива в C можно использовать указатели и функции для выделения и освобождения памяти. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#include <stdio.h> #include <stdlib.h> int main() { int n = 5; // начальный размер массива int *arr = (int*)malloc(n * sizeof(int)); // выделение памяти // инициализация массива for (int i = 0; i < n; i++) { arr[i] = i; } // вывод элементов массива for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } // изменение размера массива n = 10; arr = (int*)realloc(arr, n * sizeof(int)); // инициализация новых элементов массива for (int i = 5; i < n; i++) { arr[i] = i; } // вывод элементов массива после изменения размера for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } free(arr); // освобождение памяти return 0; } |
В данном примере используются функции malloc()
и realloc()
для выделения памяти под массив. Функция malloc()
выделяет память для массива определенного размера, а функция realloc()
изменяет размер выделенной памяти для массива. После использования массива нужно освободить выделенную для него память с помощью функции free()
.
@jett
Для создания и использования динамического массива в С необходимо использовать указатели и функции malloc(), realloc() и free(). Приведенный ниже код демонстрирует это:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#include <stdio.h> #include <stdlib.h> int main() { int n = 5; // начальный размер массива int* arr = (int*)malloc(n * sizeof(int)); // выделение памяти // инициализация массива for (int i = 0; i < n; i++) { arr[i] = i; } // вывод элементов массива for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } // изменение размера массива n = 10; arr = (int*)realloc(arr, n * sizeof(int)); // инициализация новых элементов массива for (int i = 5; i < n; i++) { arr[i] = i; } // вывод элементов массива после изменения размера for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } free(arr); // освобождение памяти return 0; } |
В данном примере используется функция malloc() для выделения памяти для массива определенного размера, функция realloc() используется для изменения размера массива, a функция free() используется для освобождения памяти после использования массива.
Обратите внимание, что в приведенном коде используются явные приведения типов (int*) для преобразования возвращаемого значения функций malloc() и realloc() из общего типа (void*) к типу указателя на целое число. Это необходимо, чтобы сделать явным тип данных, с которым мы работаем.