问题:在函数中定义的数组处于内存中的线段,但是栈段在系统中被限制了大小
解决:在堆段中操作管理动态数组
线性表的定义
线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列
物理存储结构
用一段地址连续的存储单元依次 存储线性表的数据 元素
管理节点
系统有效管理文件操作 有清单对仓库货物进行统计管理
代码演示
#include<stdio.h>
#include<stdlib.h>
typedef struct vector {
int* date;
int size;
int len;
}Vec;
Vec* initial(int n){
Vec * v = (Vec*)malloc(sizeof(Vec)+1);
v->date = (int*)malloc(sizeof(int) * n);
v->size = n;
v->len = 0;
printf("init Vector sucessfully ,size is %d\n",v->size);
return v;
}
void freeVec(Vec* v) {
if (v) {
free(v->date);
free(v);
printf("free Vector sucessfully \n");
}
return;
}
int main(int argc, char* argv[]) {
Vec* v = initial(3);
freeVec(v);
return 0;
}