Для передачи массива в функцию в языке C вы можете передать его по указателю. Это позволяет функции изменять элементы массива в месте, где он был создан.
Вот пример кода, который передает массив в функцию, где он изменяется, и затем возвращает его в main:
#include
// функция, которая изменяет элементы массива
void changeArray(int *arr, int size) {
for (int i = 0; i < size; i++) {
arr[i] *= 2;
}
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
// вызываем функцию, которая изменяет массив
changeArray(arr, 5);
// выводим измененный массив
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
return 0;
}
В этом примере функция changeArray принимает указатель на начало массива и его размер. Она изменяет каждый элемент массива, умножая его на 2. Затем main выводит измененный массив.
Если вам нужно вернуть массив из функции, то вы также можете использовать указатели. Вы можете выделить память для нового массива в функции, заполнить его и вернуть указатель на начало массива.
Вот пример кода, который выделяет память для нового массива, заполняет его случайными числами и возвращает указатель на начало массива:
#include
#include
#include
// функция, которая возвращает новый массив
int* createArray(int size) {
// выделяем память для нового массива
int *arr = malloc(size * sizeof(int));
// заполняем массив случайными числами
srand(time(NULL));
for (int i = 0; i < size; i++) {
arr[i] = rand() % 100;
}
// возвращаем указатель на начало массива
return arr;
}
int main() {
int *arr;
// вызываем функцию, которая создает новый массив
arr = createArray(5);
// выводим новый массив
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
// освобождаем память, выделенную для массива
free(arr);
return 0;
}
В этом примере функция createArray выделяет память для нового массива, заполняет его случайными числами и возвращает указатель на начало массива. Затем main выводит новый массив и освобождает память, выделенную для него.