如何在 C 语言中删除动态分配的线性表?
时间: 2024-10-01 13:11:11 浏览: 26
线性表的动态分配顺序存储结构(C语言)
在 C 语言中,当你动态分配了内存用于创建线性表,并且想要释放这些内存时,你需要调用 `free()` 函数。但是,由于 `malloc()` 返回的是指针,所以在实际操作前,首先确保指针 `linearList` 非空并且不是 `NULL`。以下是删除动态分配线性表的一个示例:
```c
#include <stdio.h>
#include <stdlib.h>
void deleteLinearList(int **linearList) {
if (*linearList != NULL) {
free(*linearList); // 释放内存
*linearList = NULL; // 设置指针为 NULL,表示已删除
}
}
int main() {
int *linearList;
int elements[] = {1, 2, 3, 4, 5, 6};
size_t size = sizeof(elements) / sizeof(elements[0]);
// 动态分配内存
linearList = malloc(size * sizeof(int));
if (linearList == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
// ... (其他操作)
// 删除线性表
deleteLinearList(&linearList);
return 0;
}
```
在上述代码中,`deleteLinearList` 函数接受指向指针的指针,这样可以在函数内部直接改变原始 `linearList` 变量的内容。注意,`free()` 后应将指针设置为 `NULL`,以免误用已释放的内存。
阅读全文