malloc、calloc、realloc函数说明
程序员文章站
2023-04-03 15:07:25
malloc 函数 n为要分配的字节数,如果成功,返回获得空间的首地址,如果分配失败,则返回NULL,malloc分配的内存是未初始化过的,所以必须用memset初始化 在s指向的的地址,填充n个ch malloc分配的是堆上的内存,显式调用free来释放 calloc 函数 calloc函数和ma ......
malloc 函数
#include <stdlib.h> void* malloc(int n);
- n为要分配的字节数,如果成功,返回获得空间的首地址,如果分配失败,则返回NULL,malloc分配的内存是未初始化过的,所以必须用memset初始化
#include <string.h> void *memset(void *s, int ch, size_t n);
- 在s指向的的地址,填充n个ch
- malloc分配的是堆上的内存,显式调用free来释放
#include <stdlib.h> void free(void *p);
calloc 函数
calloc函数和malloc类似,都是从堆上分配内存,函数声明如下
#include <stdlib.h> void *calloc(int n,int size);
- 如果执行成功,获得大小为n的空间,并返回空间的首地址,如果失败,函数返回NULL。
- 和malloc不同的是,calloc分配的都是经过初始化的,内容为0。
- calloc函数适合为数组申请空间,n为数组个数,size设置为数组大小。
- 使用free释放空间
realloc 函数
realloc函数可以实现内存分配和内存释放的功能,函数声明如下:
#include <stdlib.h> void* realloc(void * p,int n);
- p必须为指向堆内存空间的指针,即由malloc函数、calloc函数或realloc函数分配空间的指针。realloc函数将指针p指向的内存块的大小改变为n字节。
- 如果n小于或等于p之前指向的空间大小,保持原有状态不变。如果n大于原来p之前指向的空间大小,则系统将重新为p从堆上分配一块大小为n的内存空间,同时,将原来指向空间的内容依次复制到新的内存空间上,p之前指向的空间被释放。
- realloc函数分配的空间也是未初始化的。
- realloc分配的空间,须有free释放
上一篇: python之str字符串内部功能目录
下一篇: 前端(九):redux使用实例
推荐阅读
-
malloc,free,calloc,realloc函数
-
C语言中 malloc,calloc,realloc的区别
-
malloc、calloc、realloc函数说明
-
malloc,free,calloc,realloc函数
-
C语言 malloc calloc realloc 区别以及工作模式 && 预防野指针
-
C语言中 malloc,calloc,realloc的区别
-
malloc、calloc、realloc函数说明
-
malloc,calloc,realloc及动态开辟内存常见错误
-
动态内存管理及常见错误malloc()、realloc()、calloc()、free()
-
内存空间分配,以及malloc、calloc、realloc、alloca、realloc的区别