1. 数组的静态分配与动态分配
在左框图中,data存放的是数组的首变量位置,此时数组长度已经确定。
在右框图中,仅用指针指向数组的首变量位置,数组长度需要使用malloc动态分配。
2. malloc, sizeof, free函数的使用与说明
malloc括号内用来计算所需的空间,sizeof(ElemType)为每一个元素所需的空间,maxsize为元素数量。
得到总共所需的空间后,需要在最前面的ElemType进行空间划分,根据存储数据的类型,划分单位长度,如,int型每一个占用4个字节,则将800个字节的总空间划分为200个小空间。
ElemType后的星号是为了将划分好的整片空间分配成ElemType型的指针,指针指向该空间的首地址。括号内类型加星为强制转换操作,如(int*)就是将结果分配到一个int型的指针。将得到的首地址放入data*中,则完成了空间的分配。在这之后既可使用指针,也可使用数组下标操作了。