malloc()
和calloc()
都可以在堆上分配内存,分配的内存也都用free()
进行释放,它们的函数原型如下:
void* malloc(size_t _Size);
void* calloc(size_t _Count, size_t _Size);
它们的主要区别是:malloc()
只分配内存,calloc()
除了分配内存外,还将分配的内存清空为0。
举例来说,下面的两段代码是等价的:
// malloc分配内存并清零
int* buffer = (int*)malloc(512 * sizeof(int));
memset(buffer,