用c语言实现顺序表的销毁
时间: 2024-10-10 19:06:52 浏览: 34
【数据结构实现】C语言实现顺序表
在C语言中,顺序表的销毁通常涉及到释放内存、关闭文件(如果它是文件表示形式的数据结构)等操作。对于动态分配的内存,可以使用`free()`函数来释放存储元素的内存空间;如果是数组形式的顺序表,直接对数组进行初始化赋空即可。
下面是一个简单的例子,展示如何销毁动态分配的顺序表:
```c
#include <stdlib.h> // 包含 free() 函数
typedef struct {
void* data; // 存储数据的指针
size_t size; // 初始大小
size_t capacity; // 可用容量
} List;
// 初始化顺序表
List* create_list(size_t initial_capacity) {
List* list = (List*)malloc(sizeof(List));
if (!list) {
perror("Memory allocation failed");
return NULL;
}
list->data = malloc(initial_capacity * sizeof(void*)); // 动态分配内存
if (!list->data) {
free(list);
perror("Memory allocation for elements failed");
return NULL;
}
list->size = 0;
list->capacity = initial_capacity;
return list;
}
// 销毁顺序表
void destroy_list(List** list_ptr) {
if (*list_ptr != NULL) {
// 如果非空,则先清空列表
for (size_t i = 0; i < (*list_ptr)->size; ++i) {
free((*list_ptr)->data[i]);
}
free(*list_ptr->data); // 释放元素的内存
free(*list_ptr); // 释放整个结构的内存
*list_ptr = NULL;
}
}
阅读全文