#include <stdio.h>
#include <stdlib.h> // 需要包含这个头文件来使用 malloc
#define InitSize 10
typedef struct {
int *data;
int length;
int MaxSize;
} SqList;
void InitList(SqList *L) {
L->data = (int *)malloc(InitSize * sizeof(int));
if (L->data == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
L->length = 0;
L->MaxSize = InitSize;
}
void IncreaseList(SqList *L, int len) {
int *p = L->data;
L->data = (int *)malloc((L->MaxSize + len) * sizeof(int));
if (L->data == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
for (int i = 0; i < L->length; i++) {
L->data[i] = p[i];
}
L->MaxSize += len;
free(p);
}
int main () {
SqList L;
InitList(&L);
for (int i = 0; i < 10; i++) {
L.data[i] = i + 1;
L.length++;
}
IncreaseList(&L, 7);
for (int i = 10; i < 17; i++) {
L.data[i] = i + 1;
L.length++;
}
for (int i = 0; i < L.length; i++) {
printf("data[%d] = %d\n", i, L.data[i]);
}
return 0;
}