Нужен пример работы с динамической памятью - C (СИ)
Формулировка задачи:
Помогите пожалуйста сделать память под массив выделять динамически.
Организовать в виде функций сохранение массива в файл и загрузку из файла.
1. покажите простые примеры пожалуйста работы с дин памятью и загрузку выгрузку.
2. массив с которым нужно это сделать
#include <stdio.h> #include <stdlib.h> void InputArray(double *a, unsigned n); void PrintArray(double *a, unsigned n); bool Decreasing(double *a, unsigned n); int main (void) { double a[20];int n; while( n < 3 || n > 20 ) { printf("\tInput size of Array : "); scanf("%d",&n); } InputArray( a, n); PrintArray( a, n); system("pause");//Ждать нажатия клавиши if(!Decreasing( a, n)) printf("\nThe Array is not decreasing\n"); else printf("\nThe Array is decreasing\n"); system("pause");//Ждать нажатия клавиши return 0; } void InputArray(double a[], unsigned n) { srand(5); printf("\n\tArray:\n "); for(unsigned i = 0; i < n; i++) { a[i]=rand()%100; } } void PrintArray (double a[],unsigned n) { for(unsigned i = 0; i < n; i++) printf("\na[%02d] = %lf\n",i + 1, a[i]); } bool Decreasing(double a [], unsigned n) { bool Flag = true; double current = a[0]; for(unsigned j = 1; j < n && Flag;j++) { if(current <= a[j]) current = a[j]; else Flag = false; } return Flag; }
Решение задачи: «Нужен пример работы с динамической памятью»
textual
Листинг программы
int main (void) { double a[20];int n; a = (double *) malloc( n * sizeof(double) ); //тут надо while( n < 3 || n > 20 ) { printf("\tInput size of Array : "); scanf("%d",&n); } а = (double *) malloc( n * sizeof(double) ); // или тут?
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Объявление переменных:
double a[20];
- массив типа double, содержащий 20 элементов.int n;
- переменная для хранения размера массива.
- Выделение памяти под массив с помощью функции
malloc()
. Но здесь есть условие: если размер массиваn
меньше 3 или больше 20, то выделение памяти будет происходить повторно до тех пор, пока пользователь не введет корректный размер массива в диапазоне от 3 до 20. - Ввод размера массива с помощью функции
scanf()
. - Выделение памяти под массив с помощью функции
malloc()
. Таким образом, правильный ответ на вопрос:Нужен пример работы с динамической памятью
будет следующим:- Объявление переменных.
- Выделение памяти под массив с помощью функции
malloc()
. - Ввод размера массива с помощью функции
scanf()
. - Выделение памяти под массив с помощью функции
malloc()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д