malloc

Функция            Выделяет память.

Синтаксис          #include
                   #include
                   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
#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;
}