malloc/free
时间: 2023-08-10 19:05:14 浏览: 127
malloc 和 free 是C语言中用于动态内存分配和释放的函数。
malloc 函数用于在堆(heap)上分配指定大小的内存块,并返回一个指向该内存块起始地址的指针。它的函数原型如下:
```c
void* malloc(size_t size);
```
其中,size_t 是一个无符号整数类型,表示要分配的内存块的字节数。malloc 函数会返回一个指向分配内存块的指针,如果分配失败,则返回 NULL。
例如,下面的代码片段演示了如何使用 malloc 来动态分配一个整型数组:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int size = 5;
int* arr = (int*)malloc(size * sizeof(int));
if (arr == NULL) {
printf("Failed to allocate memory\n");
return 1;
}
for (int i = 0; i < size; i++) {
arr[i] = i;
printf("%d ", arr[i]);
}
free(arr);
return 0;
}
```
free 函数用于释放通过 malloc 函数分配的动态内存块。它的函数原型如下:
```c
void free(void* ptr);
```
其中,ptr 是一个指向要释放的内存块起始地址的指针。调用 free 函数后,该内存块将被释放,可以重新被其他程序使用。
需要注意的是,使用 malloc 分配的内存块在使用完成后必须调用 free 函数进行释放,以免造成内存泄漏。
阅读全文