@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*) к типу указателя на целое число. Это необходимо, чтобы сделать явным тип данных, с которым мы работаем.