Имена и типы, область видимости.
2 Назначение и синтаксис функций malloc() и calloc().
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.
Calloc()
Функция - Выделяет оперативную память.
Синтаксис #include <stdlib.h>
void * calloc(size_t nitems, size_t size);
Файл, содержащий прототип stdlib.h,alloc.h
Описание : calloc обеспечваеит доступ к динамической области памяти. Динамическая область памяти доступна для динамического распределения блоков памяти переменной длины. Многие структуры данных, например, деревья и списки, используют распределение динамической области памяти. Все пространство памяти между концом сегмента данных и верхушкой программного стека доступно для использования в моделях памяти small (tiny, small, medium), кроме небольшой области в самой верхней части стека. Это пространство необходимо для роста стека прикладной программы и плюс небольшая часть, используемая DOS. В моделях памяти типа large (compact, large, huge) все пространство за границей программного стека до конца физической памяти доступно для динамической области памяти.
Блок обнуляется. Если вы хотите выделить блок, размер которого превышает 64К то нужно использовать функцию farcalloc.
Возвращаемое значение - calloc возвращает указатель на выделенный блок. calloc возвращает NULL, если недостаочно памяти для выделения нового блока, или nitems или size равны 0.
Переносимость - Поддерживается в системах UNIX и определена в ANSI C.
Стек (англ. stack — стопка) — структура данных с методом доступа к элементам LIFO (англ. Last In — First Out, «последним пришел — первым вышел»). Чаще всего принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, нужно снять верхнюю.