malloc函数
- C 库函数 void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针
- 头文件为stdlib.h
- 函数声明如下:
void *malloc(size_t size)
- size – 内存块的大小,以字节为单位。
- 使用时通常可以配合sizeof函数来使用,例如
char * res = (char*)malloc(sizeof(char)*len_sum);
- 如果分配空间失败则会返回NULL,可以在malloc完成之后,进行判断
- 需要注意的是len_sum是指有多少个这一类型的元素,而在使用res时,因为是元素是从0开始计算,因此res里元素的范围就是0-len_sum-1。此处容易造成越界。
calloc函数
- 头文件 stdlib.h
- 函数声明如下:
void *calloc(size_t nitems, size_t size)
- malloc 和 calloc 之间的不同点是,malloc 不会设置内存为零,而 calloc 会设置分配的内存为零。
- 第一个参数nitems的类型是无符号整型(size_t),它表示需要动态开辟的元素的个数。
- 第二个参数的类型是无符号整型(size_t),它表示需要开辟的每个元素的大小(以字节为单位).
- 使用时通常配合sizeof函数进行使用
char * res = (char*)calloc(len_sum,sizeof(char));
最后不要忘记free掉