Russian Belarusian English German Japanese Ukrainian

Malloc

CuBook05

Функция

Выделяет память.
 
Синтаксис

#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;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить