如何使用动态内存分配或静态内存分配方法来创建一个顺序表数据结构?C语言
时间: 2024-12-02 21:20:35 浏览: 1
C语言实现动态顺序表的实现代码
在C语言中,有两种内存管理方式可以用于创建顺序表:动态内存分配和静态内存分配。
**1. 静态内存分配(数组)**:
```c
typedef struct {
int* elements; // 存储元素的指针
int size; // 当前元素的数量
int capacity; // 数组的总容量
} SequenceList;
// 创建静态大小的顺序表
SequenceList createStaticList(int capacity) {
SequenceList list;
list.elements = (int*)malloc(capacity * sizeof(int)); // 分配固定大小的内存
if (!list.elements) {
printf("Memory allocation failed.\n");
return list;
}
list.size = 0;
list.capacity = capacity;
return list;
}
// 添加元素(若已满则需要扩展)
void addElement(SequenceList* list, int value) {
if (list->size == list->capacity) {
list->capacity *= 2; // 扩容一倍
list->elements = realloc(list->elements, list->capacity * sizeof(int));
if (!list->elements) {
printf("Memory reallocation failed.\n");
exit(1);
}
}
list->elements[list->size++] = value;
}
阅读全文