malloc

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

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



Пример:

#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;
}