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, 0, 512 *

本文探讨了C语言中动态内存分配函数malloc()和calloc()的区别。malloc()仅分配内存,而calloc()除了分配内存外还会将内存初始化为0。通过示例代码展示了两者的等价使用方式。

643

被折叠的 条评论
为什么被折叠?



