Не работает 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;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdlib.h, printf.h, conio.h
- Создание функции get_mem, которая выделяет память под массив из 100 элементов типа float с помощью функции calloc.
- Проверка на успешное выделение памяти с помощью оператора if. Если память не выделена (т.е. p == NULL), выводится сообщение об ошибке и программа завершается с кодом 1.
- Возвращение указателя на выделенный блок памяти.
- В функции main вызывается функция get_mem и результат присваивается переменной p.
- Вызов функции free для освобождения памяти.
- Ожидание нажатия клавиши с помощью функции getch.
- Возвращение 0, что означает успешное завершение программы.