C语言 ANSI-C内存管理API函数整理

来源:互联网 发布:js左右滑动图片轮播 编辑:程序博客网 时间:2024/06/05 07:17
1.malloc/free
malloc 用来在堆中申请内存空间
extern void * malloc (size_t __size);
extern void free(void*__ptr);
2.realloc更改已经配置的内存空间
extern void *realloc(void *__ptr,size_t __size);
第一个参数为试图更改大小的原堆空间位置,
第二个参数为新的内存大小
3.calloc函数
calloc函数是malloc 函数的简单包装,它把动态分配的内存空间初始化为零
ptr=(struct data*)calloc(count ,sizeof(struct data));
4.alloca分配内存空间
alloca函数用来在栈中分配size个字节的内存空间,因此函数返回时会自动释放掉改空间
extern void *alloca(size_t __size)__THROW;
5.memcpy()
extern void* memcpy(void* __restrict __dest,__const void* __restrict __src,size_t __n);
函数将n个字节从src所指向的位置拷贝到dest所指向的位置。
6.memmove
extern void* memmove(void* _dest,_const void *_src,size_t _n);
函数功能也是将n个字节从src所指向的位置拷贝到dest所指向的空间,只是memmove函数在拷贝之前,会先检查源地址和目标地址是否有重叠的地方,如果有,则先进行处理在拷贝,如果没有,则直接拷贝。
7.memset();
extern void * memset(void *__s,int _c,size_t __n)__THROW __nonnull((1));
此函数将设置自s开始后面n位的值为c,如果执行成功,返回s的首地址。
8,memchr()
extern void* memchr(_const void *_s,int _c,size_t _n);
memchr()函数将在一段内存空间中检查某个字符位置第一次出现的位置。
9,memcmp()
extern int memcmp(_const void *_s1,_const void *_s2,size_t _n);
此函数比较内存单元s1和s2起始位置的前n个字节是否相等,如果相等,返回0,如果s1<s2,放回-1,如果s1>s2,则返回1;

0 0