Как реализовать динамический массив в c?

Пользователь

от jett , в категории: C/C++ , 8 месяцев назад

Как реализовать динамический массив в c?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от cayla , 7 месяцев назад

@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().