Нужен пример работы с динамической памятью - 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) ); // или тут?

Объяснение кода листинга программы

В данном коде выполняется следующие действия:

  1. Объявление переменных:
    • double a[20]; - массив типа double, содержащий 20 элементов.
    • int n; - переменная для хранения размера массива.
  2. Выделение памяти под массив с помощью функции malloc(). Но здесь есть условие: если размер массива n меньше 3 или больше 20, то выделение памяти будет происходить повторно до тех пор, пока пользователь не введет корректный размер массива в диапазоне от 3 до 20.
  3. Ввод размера массива с помощью функции scanf().
  4. Выделение памяти под массив с помощью функции malloc(). Таким образом, правильный ответ на вопрос: Нужен пример работы с динамической памятью будет следующим:
    • Объявление переменных.
    • Выделение памяти под массив с помощью функции malloc().
    • Ввод размера массива с помощью функции scanf().
    • Выделение памяти под массив с помощью функции malloc().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы