void *malloc(size_t size)
Прототип:
Описание:
Функция malloc() возвращает адрес на первый байт области памяти размером size байт, которая была выделена из кучи. Если памяти недостаточно, чтобы удовлетворить запрос, функция malloc() возвращает нулевой указатель. Очень важно всегда проверять возвращаемое значение на его равенство NULL, прежде чем пытаться использовать этот указатель. Попытка использования нулевого указателя обычно влечет крах системы.
Пример:
Следующая функция выделяет достаточное количество памяти для того, чтобы содержать структуру типа addr:
#include <stdlib.h>
struct addr {
char name[40];
char street[40];
char city[40];
char state[3];
char zip[10];
};
...
struct addr *get_struct(void)
{
struct addr *p;
if (!(p=(struct addr *)malloc(sizeof(addr)))) {
printf("Allocation error.");
exit(0);
}
return p;
}
#include <stdlib.h>
struct addr {
char name[40];
char street[40];
char city[40];
char state[3];
char zip[10];
};
...
struct addr *get_struct(void)
{
struct addr *p;
if (!(p=(struct addr *)malloc(sizeof(addr)))) {
printf("Allocation error.");
exit(0);
}
return p;
}