Как увеличивать массив в языке C?

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

от alisa.bahringer , в категории: C/C++ , 9 месяцев назад

Как увеличивать массив в языке C?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от loyal , 9 месяцев назад

@alisa.bahringer 

Для увеличения массива в языке C необходимо выполнить следующие шаги:

  1. Определить новый размер массива.
  2. Выделить память под новый массив с помощью функции realloc(), которая позволяет изменять размер уже выделенной памяти.
  3. Скопировать элементы из старого массива в новый массив.
  4. Освободить память, выделенную под старый массив, используя функцию free().


Например, если у вас есть массив arr размером n, и вы хотите увеличить его размер до m, то вы можете использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
int *arr = malloc(n * sizeof(int)); // выделение памяти под массив
// ... инициализация массива arr ...
// увеличение размера массива до m
arr = realloc(arr, m * sizeof(int)); // выделение новой памяти под массив
// копирование элементов из старого массива в новый
for (int i = n; i < m; i++) {
    arr[i] = 0; // например, можно заполнить новые элементы нулями
}
// ... использование массива arr ...
free(arr); // освобождение памяти, выделенной под массив


Здесь мы сначала выделяем память под массив arr размером n, затем увеличиваем его размер до m с помощью realloc(), копируем элементы из старого массива в новый, и освобождаем память, выделенную под старый массив с помощью free().