用C语言顺序表的操作写一个销毁线性表的代码
时间: 2024-09-29 18:06:58 浏览: 48
在C语言中,销毁或删除顺序表(也称为数组)通常涉及到释放分配给元素的内存空间。这里假设你有一个动态创建的整数型顺序表。以下是一个简单的代码示例,展示了如何遍历并逐个释放内存:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体
typedef struct {
int* data; // 存储元素的指针
size_t size; // 序列长度
size_t capacity; // 当前容量
} List;
// 初始化顺序表
List* create_list(size_t initial_capacity) {
List* list = (List*)malloc(sizeof(List));
list->data = (int*)malloc(initial_capacity * sizeof(int));
list->size = 0;
list->capacity = initial_capacity;
return list;
}
// 添加元素到列表末尾
void add_element(List* list, int value) {
if (list->size == list->capacity) {
list->capacity *= 2; // 如果已满,扩大容量
list->data = (int*)realloc(list->data, list->capacity * sizeof(int)); // 动态扩展
}
list->data[list->size++] = value;
}
// 销毁顺序表
void destroy_list(List* list) {
for (size_t i = 0; i < list->size; i++) {
free(list->data[i]); // 逐个释放元素
}
free(list->data); // 最后释放整个数据区域
free(list); // 解放结构体自身
list = NULL; // 明确表示已经销毁
}
// 示例使用
int main() {
List* my_list = create_list(5);
// ... 添加元素 ...
destroy_list(my_list);
return 0;
}
阅读全文