怎么释放用malloc分配的数组
时间: 2024-09-12 10:16:31 浏览: 34
在C语言中,当你使用`malloc`或其他内存分配函数(如`calloc`、`realloc`)为数组分配了内存后,需要记住在不再需要这个数组时释放它,以防止内存泄漏。你可以使用`free`函数来完成这个任务。这里是一个例子:
```c
#include <stdio.h>
#include <stdlib.h>
int* allocate_array(size_t length) {
int* array = (int*) malloc(length * sizeof(int));
if (array == NULL) {
fprintf(stderr, "Memory allocation failed.\n");
exit(1); // 错误处理,例如程序终止
}
return array;
}
void free_array(int* array, size_t length) {
if (array != NULL) { // 防止释放未初始化或NULL指针
free(array); // 释放内存
array = NULL; // 设置为NULL表示已释放,避免意外再次使用
printf("Array memory has been freed.\n");
}
}
int main() {
size_t length = 10;
int* my_array = allocate_array(length);
// ... 使用my_array
free_array(my_array, length); // 释放内存
return 0;
}
```
在这个例子中,`free_array`函数负责释放分配的内存。记得在程序结束前或不再需要数组时调用这个函数。
阅读全文