calloc和malloc的用法
时间: 2023-08-20 09:58:38 浏览: 45
calloc和malloc是C语言中用于动态内存分配的函数。
malloc函数用于分配指定大小的内存空间,并返回一个指向分配内存的指针。其函数原型为:
```c
void* malloc(size_t size);
```
其中,size是要分配的字节数。malloc函数分配的内存空间是未初始化的,需要手动进行初始化。
calloc函数也用于分配内存空间,但与malloc不同的是,calloc在分配内存的同时会将内存空间初始化为0。其函数原型为:
```c
void* calloc(size_t num, size_t size);
```
其中,num是要分配的元素个数,size是每个元素的大小。calloc函数会分配num * size字节的内存空间,并将其初始化为0。
使用malloc或calloc函数分配内存后,需要在不再使用内存时使用free函数释放内存。释放内存的函数原型为:
```c
void free(void* ptr);
```
其中,ptr是之前分配内存时返回的指针。
示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int* numbers = (int*)malloc(5 * sizeof(int));
if (numbers == NULL) {
printf("Memory allocation failed\n");
return 1;
}
for (int i = 0; i < 5; i++) {
numbers[i] = i + 1;
printf("%d ", numbers[i]);
}
free(numbers);
return 0;
}
```
上述代码使用malloc函数分配了一个包含5个int类型元素的内存空间,并将其初始化为1到5的数字。最后使用free函数释放了内存空间。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)