Не работает calloc в DevC++ - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вот код программы.
#include <stdlib.h>
#include <stdio.h>
float *get_mem(void)
{
float *p;
 р = (float *) calloc(100, sizeof(float));
if(!p) {
printf ("Allocation failure.");
exit (1);
}
return p;
}
Почему код там не компиллируется? В какой программе он заработает?

Решение задачи: «Не работает calloc в DevC++»

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
 
float* get_mem(void)
{
    float *p;
 
    p = calloc(100, sizeof(float));
    if(!p)
    {
        printf("Allocation failure.");
        exit(1);
    }
    return p;
}
 
int main(void)
{
    float *p = get_mem;
    free(p);
    getch();
    return 0;
}

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

  1. Подключение необходимых библиотек: stdlib.h, printf.h, conio.h
  2. Создание функции get_mem, которая выделяет память под массив из 100 элементов типа float с помощью функции calloc.
  3. Проверка на успешное выделение памяти с помощью оператора if. Если память не выделена (т.е. p == NULL), выводится сообщение об ошибке и программа завершается с кодом 1.
  4. Возвращение указателя на выделенный блок памяти.
  5. В функции main вызывается функция get_mem и результат присваивается переменной p.
  6. Вызов функции free для освобождения памяти.
  7. Ожидание нажатия клавиши с помощью функции getch.
  8. Возвращение 0, что означает успешное завершение программы.

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


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

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

12   голосов , оценка 3.833 из 5