顺序表初始化 动态分配 C语言

Run Settings
LanguageC
Language Version
Run Command
# include<stdio.h> # include<stdlib.h> #define InitSize 10 // 默认最大长度 // #define MaxSize 10 // 定义最大长度 typedef struct { int *data; // 指示动态分配数组的指针 int MaxSize; // 用静态的 “数组” 存放数据元素 int length; }SqList; void InitList (SqList *L) { // for (int i = 0; i < MaxSize; i++) L->data = (int *) malloc (InitSize *sizeof(int)); L->MaxSize = InitSize; L->length = 0; // 顺序表初始长度为 0 } void IncreaseSize(SqList *L, int len) { int *p = L->data; L->data = (int *) malloc((L->MaxSize+len)*sizeof(int)); for(int i=0;i<L->length;i++) { L->data[i] = p[i]; // 将数据复制到新区域 } L->MaxSize = L->MaxSize + len; // 顺序表最大长度增加 len free (p); // 释放原来的内存空间 } int main() { SqList L; // 声明一个顺序表 InitList(&L); // 初始化顺序表 IncreaseSize(&L,5); for(int i =0;i<L.MaxSize;i++) { printf("data[%d]=%d\n",i,L.data[i]); } return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines