Функция Выделяет память.
Синтаксис #include
#include
void *malloc(size_t size);
Файл, содержащий stdlib.h и alloc.h
прототип
Описание Функция обеспечивают выделение блока памяти, раз-
мером size байт.Она позволяет программе выделять
память по необходимости и столько, сколько нужно.
Динамическая область памяти доступна для динами-
ческого размещения блоков памяти переменной дли-
ны. Многие структуры данных, такие как "деревья"
или "списки" - естественным образом используют
динамическое распределение памяти.
В малых моделях памяти, вся область памяти между
концом сегмента данных и вершиной программного
стека доступна для использования, за исключением
256-байтовой границы, находящейся непосредственно
перед вершиной стека. Данная граница предназначе-
на для наращивания стека прикладной программы
(плюс небольшое количество, требуемое для DOS).
В больших моделях памяти все пространство после
программного стека до конца физической памяти
доступно для динамической области.
Возвращаемое значение
Функция malloc возвращает указатель на блок выде-
ленной памяти. Если для размещения блока недоста-
точно памяти, функция malloc возвращает NULL. Со-
держимое блока остается неизменным. Если аргумент
size равен 0, то функция возвращает NULL.
Переносимость Функция доступна в системах UNIX и
поддерживается стандартом ANSI C.
Смотрите также allocmemcalloccoreleftfarcallocfarmallocfreerealloc
Пример:
#include
#include
#include
#include
int main(void)
{
char *str;
/* выделить память под строку */
if((str = malloc(10)) == NULL)
{
printf("Недостаточно памяти\n");
exit(1); /* завершение с кодом ошибки */
}
/* скопировать в строку "Hello" */
strcpy(str,"Hello");
/* вывести строку */
printf("Строка: %s\n",str);
/* освободить память */
free(str);
return 0;
}