CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
malloc
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. Смотрите также 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; }