动态内存分配函数
哈喽,好久不见,消失的日子都在长胖,不更新的时光都在躺平
之前遇见了使用对齐内存的分配函数,所以想着总结一下,会用即可
相关函数
- malloc
1void *malloc(size_t size);
malloc 就不做详细介绍了,之前有文章详细介绍过malloc、kmalloc、vmalloc ? - 艾恩凝 (aeneag.xyz)
- calloc
1void *calloc(size_t num, size_t size);
calloc函数会将分配的内存初始化为0,该函数将会分配 num
个 size
大小的内存块
- realloc
1void *realloc(void* memblock, size_t size);
先判断当前的指针是否有足够的连续空间,如果有,扩大指向的地址,并且将地址返回,如果空间不够,先按照 size
指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来指针所指内存区域(注意:原来指针是自动释放,不需要使用free),同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。
- aligned_malloc
1void *aligned_malloc(size_t size, size_t alignment);
size
是申请内存大小,alignment
是内存对齐大小,必须是2的幂
- posix_memalign
1int posix_memalign(void **memptr, size_t alignment, size_t size);
size
是申请内存大小,alignment
是内存对齐大小,必须是2的幂,**memptr
指向内存的地址
吾心信其可行,
则移山填海之难,
终有成功之日!
——孙文
则移山填海之难,
终有成功之日!
——孙文
评论
0 评论