malloc与calloc的区别及实例 🧩💻
2025-04-03 15:52:28
•
来源:
导读 📚 什么是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`更合适!✨
版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。
关键词: