В языке С вы можете использовать функцию realloc для изменения размера массива. Эта функция изменяет размер блока памяти, выделенного ранее с помощью malloc или calloc, на новый размер. Если новый размер больше старого, то дополнительная память не инициализируется. Если новый размер меньше старого, то содержимое блока памяти урезается до нового размера. Вот пример кода, который добавляет элемент в конец массива: #include
#include
int main() {
int n = 5;
int *arr = malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
arr = i;
}
// Добавление элемента в конец массива
n++;
arr = realloc(arr, n * sizeof(int));
arr[n - 1] = n - 1;
for (int i = 0; i < n; i++) {
printf("%d ", arr);
}
printf("\n");
free(arr);
return 0;
}
Этот код создает массив из 5 элементов, заполняет его значениями от 0 до 4, затем добавляет элемент в конец массива и выводит его содержимое. Вывод программы: 0 1 2 3 4 5. Обратите внимание, что использование realloc может привести к перемещению блока памяти в другое место, поэтому после вызова realloc указатель на старый блок памяти может стать недействительным. Поэтому всегда следует использовать возвращаемое значение realloc для работы с новым блоком памяти.