Ввод и вывод массива через функцию - C (СИ)
Формулировка задачи:
Здраствуйте, написал программу для ввода/вывода массива с заданным количеством елементов, но не знаю как сделать так, чтобы количество елемментов вводил пользователь, помогите
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void input(int a[5]){
int i;
for( i = 0; i <5; i++)
scanf("%d", &a[i]);
}
void output(int a[5]){
int i;
for( i = 0; i <5; i++){
printf("%d ", a[i]);
} }
int main() {
clrscr();
int a[5];
printf("Print 5 elem mass: ");
input(a);
printf("Printed mass: ");
output(a);
getch();
return 0;
}Решение задачи: «Ввод и вывод массива через функцию»
textual
Листинг программы
#include <stdlib.h>
size_t n;
pritnf("введите размер массива\n");
scanf("%u", &n);
int *arr = malloc(n*sizeof(int));
if (arr == NULL)
return(-1); // значит память не выделилась
// теперь можно работать с arr как с массивом длины n, дальше думаю разберётесь, не забудьте в конце программы освободить выделенную память free(arr);
Объяснение кода листинга программы
- Подключаем необходимую библиотеку для работы с размером типа size_t
- Объявляем переменную типа size_t с именем n и инициализируем её значением, равным размеру массива
- Считываем введенное с клавиатуры значение размера массива в переменную n
- Выделяем память под массив переменной длины n с помощью функции malloc
- Проверяем успешность выделения памяти. Если память не выделилась, то возвращаем -1
- Теперь можно использовать выделенный массив как полноценный массив длины n
- Забываем освободить выделенную память