|
|
1.1 root 1: .TH MALLOC 3
2: .CT 2 mem_man
3: .SH NAME
4: malloc, free, realloc, calloc, cfree \- memory allocator
5: .SH SYNOPSIS
6: .nf
7: .B char *malloc(size)
8: .B unsigned size;
9: .PP
10: .B free(ptr)
11: .B char *ptr;
12: .PP
13: .B char *realloc(ptr, size)
14: .B char *ptr;
15: .B unsigned size;
16: .PP
17: .B char *calloc(nelem, elsize)
18: .B unsigned nelem, elsize;
19: .PP
20: .B cfree(ptr)
21: .B char *ptr;
22: .fi
23: .SH DESCRIPTION
24: .I Malloc
25: and
26: .I free
27: provide a simple memory allocation package.
28: .I Malloc
29: returns a pointer to a new block of at least
30: .I size
31: bytes.
32: The block is suitably aligned for storage of any type of object.
33: No two active pointers from
34: .I malloc
35: will have the same value.
36: .PP
37: The argument to
38: .I free
39: is a pointer to a block previously allocated by
40: .IR malloc ;
41: this space is made available for further allocation.
42: .PP
43: .I Realloc
44: changes the size of the block pointed to by
45: .I ptr
46: to
47: .I size
48: bytes and returns a pointer to the (possibly moved)
49: block.
50: The contents will be unchanged up to the
51: lesser of the new and old sizes.
52: The call
53: .B "realloc((char*)0, size)
54: means the same as
55: .LR malloc(size) .
56: .PP
57: .I Calloc
58: allocates space for
59: an array of
60: .I nelem
61: elements of size
62: .I elsize.
63: The space is initialized to zeros.
64: .I Cfree
65: frees such a block.
66: .SH SEE ALSO
67: .IR galloc (3),
68: .IR brk (2),
69: .IR pool (3),
70: .IR block (3)
71: .SH DIAGNOSTICS
72: .I Malloc, realloc
73: and
74: .I calloc
75: return 0 if there is no available memory
76: or if the arena has been detectably corrupted.
77: .SH BUGS
78: When
79: .I realloc
80: returns 0, the block pointed to by
81: .I ptr
82: may have been destroyed.
83: .PP
84: User errors can corrupt the storage arena.
85: The most common gaffes are (1) freeing an already freed block,
86: (2) storing beyond the bounds of an allocated block, and (3)
87: freeing data that was not obtained from the allocator.
88: To help find such errors, a diagnosing allocator
89: may be loaded; use flag
90: .B -ldmalloc
91: of
92: .IR cc (1).
93: An even more stringently checking version may be created
94: by recompilation; see the source.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.