Функция Выделяет память.
Синтаксис #include<stdlib.h>
#include<alloc.h>
void *malloc(size_t size);
Файл, содержащий stdlib.h и alloc.h
прототип
Описание Функция обеспечивают выделение блока памяти,
размером size байт.Она позволяет программе
выделять память по необходимости и столько,
сколько нужно.
Динамическая область памяти доступна для
динамического размещения блоков памяти переменной
длины. Многие структуры данных, такие как
"деревья" или "списки" - естественным образом
используют динамическое распределение памяти.
В малых моделях памяти, вся область памяти между
концом сегмента данных и вершиной программного
стека доступна для использования, за исключением
256-байтовой границы, находящейся непосредственно
перед вершиной стека. Данная граница предназначена
для наращивания стека прикладной программы (плюс
небольшое количество, требуемое для DOS).
В больших моделях памяти все пространство после
программного стека до конца физической памяти
доступно для динамической области.
Возвращаемое Функция malloc возвращает указатель на блок выде-
значение ленной памяти. Если для размещения блока недоста-
точно памяти, функция malloc возвращает NULL.
Содержимое блока остается неизменным. Если
аргумент size равен 0, то функция возвращает NULL.
Переносимость Функция доступна в системах UNIX и поддерживается
стандартом ANSI C.
Смотрите также allocmem, calloc, coreleft, farcalloc, farmalloc,
free, realloc.
Пример:
#include<stdio.h>
#include<string.h>
#include<alloc.h>
#include<process.h>
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;
}
|