真没用函数给顺序表赋值c语言
时间: 2024-09-30 20:03:48 浏览: 23
C语言实现的顺序表功能完整实例
在C语言中,如果你想要通过函数给顺序表(通常称为数组或动态数组)赋值,你可以创建一个专门的函数来完成这个任务。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序列表结构体
typedef struct {
int* data; // 数组指针
size_t size;
size_t capacity;
} List;
// 动态初始化顺序列表的函数
void initialize_list(List* list) {
list->data = (int*)malloc(sizeof(int) * list->capacity);
if (!list->data) { // 检查内存分配是否成功
printf("Memory allocation failed.\n");
return;
}
list->size = 0;
}
// 赋值函数,将新值添加到列表末尾
void assign_value(List* list, int value) {
if (list->size == list->capacity) { // 判断是否需要扩容
list->capacity *= 2; // 如果满了,容量翻倍
list->data = (int*)realloc(list->data, sizeof(int) * list->capacity);
if (!list->data) { // 再次检查内存分配
printf("Memory reallocation failed.\n");
return;
}
}
list->data[list->size] = value; // 添加新的元素
list->size++;
}
// 示例使用
int main() {
List my_list;
initialize_list(&my_list); // 初始化一个大小为1的列表
assign_value(&my_list, 5); // 给列表添加元素5
assign_value(&my_list, 10); // 再添加元素10
for (size_t i = 0; i < my_list.size; i++) {
printf("Element %d: %d\n", i, my_list.data[i]); // 打印列表内容
}
free(my_list.data); // 清理内存
return 0;
}
```
在这个示例中,`initialize_list()` 函数用于初始化一个空的顺序列表,而 `assign_value()` 函数则负责给列表添加元素。注意,在实际应用中,你可能还需要处理错误情况,例如当内存分配失败时。
阅读全文