malloc与calloc的区别及实例 🧩💻

导读 📚 什么是malloc和calloc?在C语言中,`malloc`和`calloc`都是用于动态内存分配的函数,但它们有一些细微差别。`malloc`是“memory alloc...

📚 什么是malloc和calloc?

在C语言中,`malloc`和`calloc`都是用于动态内存分配的函数,但它们有一些细微差别。`malloc`是“memory allocation”的缩写,而`calloc`则是“contiguous allocation”。简单来说,`malloc`只分配指定大小的空间,而`calloc`会初始化分配的空间为零。

📊 主要区别

- 初始化:`malloc`分配空间后不会自动清零,而`calloc`会将分配的内存初始化为0。

- 参数形式:`malloc`需要传入字节数作为参数,而`calloc`需要传入元素数量和每个元素的大小。

- 返回值类型:两者都返回`void`类型的指针,需强制转换为所需数据类型。

🔍 示例代码

```c

include

include

int main() {

int n = 5;

// 使用malloc

int arr1 = (int)malloc(n sizeof(int));

printf("Malloc: %d\n", arr1[0]); // 输出可能是随机值

// 使用calloc

int arr2 = (int)calloc(n, sizeof(int));

printf("Calloc: %d\n", arr2[0]); // 输出为0

free(arr1);

free(arr2);

return 0;

}

```

🎯 总结

选择`malloc`还是`calloc`取决于需求。如果需要快速分配且不关心初始值,用`malloc`;若需要零初始化,则`calloc`更合适!✨

版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。
关键词: