Array Resize C - увеличение или уменьшение размера массива в языке C
В C вы можете изменить размер массива с помощью функции `realloc`. Эта функция может быть использована для увеличения или уменьшения размера массива.
Пример увеличения размера массива:
c
int* array = malloc(5 * sizeof(int)); // выделение памяти для массива из 5 элементов
// инициализация массива
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = 4;
array[4] = 5;
int newSize = 10;
int* newArray = realloc(array, newSize * sizeof(int)); // увеличение размера массива до 10 элементов
if (newArray != NULL) {
array = newArray;
// можно продолжить использовать массив array с новым размером
} else {
// не удалось увеличить размер массива, обработка ошибки
}
Пример уменьшения размера массива:
c
int* array = malloc(10 * sizeof(int)); // выделение памяти для массива из 10 элементов
// инициализация массива
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = 4;
array[4] = 5;
array[5] = 6;
array[6] = 7;
array[7] = 8;
array[8] = 9;
array[9] = 10;
int newSize = 5;
int* newArray = realloc(array, newSize * sizeof(int)); // уменьшение размера массива до 5 элементов
if (newArray != NULL) {
array = newArray;
// можно продолжить использовать массив array с новым размером
} else {
// не удалось уменьшить размер массива, обработка ошибки
}
Обратите внимание, что при вызове функции `realloc` может произойти перераспределение памяти. Если память не может быть перераспределена, функция вернет `NULL`. Поэтому всегда важно проверять возвращаемое значение функции `realloc`.