#define InitSize 10 //默认的最大长度
typedef struct{
int *data;//指示动态分配数组的指针
int MaxSize;//顺序表中的最大容量
int length;//顺序表的当前长度
}SeqList;
void InitList(SeqList &L){
//用malloc函数申请一片连续的存储空间
L.data=(int *)malloc(InitSize*sizeof(int));
L.length=0;
L.MaxSize=InitSize;
}
为什么使用malloc函数时申请函数的的指针要强制类型转换,转换为和定义的数据类型相对应的同类型的指针。
因为虽然指针指向的都是同一个位置,但是如果指针所指向得数据类型定义错了,那么在访问数据元素时就会出现问题。
图为指针数组下标访问的原理,也解释了两种不同类型的指针访问为什么会出现问题。