|
��������
malloc, free, realloc, calloc - ���������� �������
���������
char *malloc (size) unsigned size; void free (ptr) char *ptr; char *realloc (ptr, size) char *ptr; unsigned size; char *calloc (nelem, elsize) unsigned nelem, elsize;
��������
������� malloc � free ������������� ������� ������������� �������� ��������� � ������������ ������. �������
malloc ���������� ��������� �� ���� ������ �������� ��
����� size ����, ������� ����� ������������ � ������������ �����.
���������� ������� free �������� ��������� �� ���� ������, �������������� ���������� � ������� ������� malloc; ����� ���������� free ��� ����� ������ ����� ���� �������� �����, �� �� ���������� ��������.
� ������ ������ �� ������� �����, ����������� �������� malloc, � ����� ��� ������ ������� free � ����������, �� ���������� ����������� malloc, ������ ����� ���������������.
������� malloc �������� ������ �� ������� ���������� �������� ������������ ����� ��������� ������, ������������ ��� ����� �� �����, ������� � ���������� ����������� ��� ��������������. ������� ������� ��������� ����� �� ��������� � ���� ������� ��������� ����. ���� �� ������� ����������� �����, �� ���������� sbrk [��. brk(2)], � ���������� ���� ���������� ������� ������� �������� ������ ���������.
������� realloc �������� ������ �����, �� ������� ��������� �������� ptr, �� �������� � size ���� � ���������� ��������� �� (�������� ������������) ����. ����� ����������� ����� �� ����������� �� ������ � ������� �������� �� ����������. ���� ���� �������� size ���� �� ������� ���������� �� ������� �����, �� ���������� malloc ��� ��������� ����� ������� �������, ����� ���� ������ �� ������� ����� ������������ �� ����� �����.
�������� ptr ������� realloc ����� ��������� � �� ����, ������������� ����� ���������� ��������� � �������� malloc, realloc ��� calloc. ���� ��������� ��������� ������, ���������������� ������ ������� malloc, free � realloc ����� ������������ ��� ���������� ������.
������� calloc �������� ������������ ��� ������� �� nelem ���������, ������ �������� elsize ����, � ��������� ������ ������.
������� ���������� ������ ������ ������������� ���, ����� ���������� (���� ����� ����� �������������� ����� �������������� ����������) �������� ������������ ��������.
��. �����
brk(2), malloc(3X).
�����������
������� malloc, realloc � calloc ���������� ������ ��������� NULL, ���� ��� ������������ ���������� ������
��� ���� �������������� ��������� ��������� ������
(������� ������� ������ ��������� - ������ � ������ ���
���������� ������). � �������� �������� �� ������������� ���������� ����������� �����, �� ������� ���������
�������� ptr.
����������
����� ��������� ����� ������ ������, ����� ������ ���������� ����� �������������. ���� ��������� �����������
������, �� �� ����������� ��, �� ������ ����������� �������� ��������� ������ ���������� ���������. �����
����� ��������, ����� ������������ ����� ������ ����������, ��. malloc(3X).
|