|
有关malloc,,,,realloc,,,,,calloc,,,free的用法可以用man -S 3 malloc来查阅
不过我不是太清楚!
SYNOPSIS
#include <stdlib.h>
void *calloc(size_t nmemb, size_t size);
void *malloc(size_t size);
void free(void *ptr);
void *realloc(void *ptr, size_t size);
DESCRIPTION
calloc() allocates memory for an array of nmemb elements of size bytes
each and returns a pointer to the allocated memory. The memory is set
to zero.
malloc() allocates(分配) size bytes and returns a pointer(一个指针) to
the allocated memory(分配了的内存). The memory is not cleared(不会被清除).
free() frees the memory space pointed to by ptr, which must have been
returned by a previous call to malloc(), calloc() or realloc(). Other-
wise, or if free(ptr) has already been called before, undefined
behaviour occurs. If ptr is NULL, no operation is performed.
realloc() changes the size of the memory block(内存块) pointed to by ptr to
size bytes. The contents(内容) will be unchanged to the minimum(最少的) of the old
and new sizes; newly(重新地) allocated memory will be uninitialized(末初始化). If ptr is
NULL, the call is equivalent(当量) to malloc(size); if size is equal(使..相等) to zero,the call is equivalent to free(ptr). Unless ptr is NULL, it must have
been returned by an earlier call to malloc(), calloc() or realloc().
RETURN VALUE
For calloc() and malloc(), the value(值) returned is a pointer to the allo-
cated memory(分配了的内存), which is suitably aligned for any kind of variable(变量), or
NULL if the request(请求) fails.
free() returns no value.
realloc() returns a pointer to the newly(重新) allocated memory, which is
suitably(合适地) aligned(调整) for any kind of variable and may be different from
ptr, or NULL if the request fails. If size was equal(使..相等) to 0, either NULL
or a pointer suitable to be passed to free() is returned. If realloc()
fails the original block is left untouched - it is not freed or moved. |
|