参考:https://blog.csdn.net/lgibsion/article/details/66609495
C语言中常用的几个内存申请函数:
void* malloc(unsigned size);
void* realloc(void* ptr, unsigned newsize);
void* calloc(size_t numElements, size_t sizeOfElement);
以上函数都在头文件stdlib.h中定义,因此使用时必须导入该头文件。
malloc:
一般我们在平常写代码中用得最多的就是malloc函数了,其参数size是需要申请的内存长度,单位为字节,如果申请失败则返回NULL,否则返回申请到连续内存块的首地址,需要将返回的首地址指针强制转换成目标类型的指针。如:
char *p = (char*)malloc(10);
realloc:
realloc是给一个已经申请了内存的指针重新分配内存,即当一个指针指向的内存块不够或有多余时可以使用realloc为其重新分配合适大小的内存,相对于可以根据需要调整内存块的大小。参数ptr为原有的空间地址,newsize是重新申请的地址长度。
如:
char *p = (char *)malloc(10);
p = realloc(p, 20);