数组指针的使用不明白的一点,望大家帮忙解答
(教材:数据结构C语言版 严蔚敏)P22、P23
学习线性表的过程中有些自己的理解,但是不知道对不对,希望大家能指正,十分感谢!
在顺序表的实现时,有这样定义:
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;//①这里我的理解:是将一个匿名结构体给定一个别名为SqList。
②Elem是数组指针,我后来弄懂明白是数组的首地址。接下来初始化表的一段中是这样的:
Status InitList_Sq(SqList &L){
L.elem=(ElemType *)malloc(.....);//③这个地方的L.elem该怎么理解?Elem只是一个首地址,malloc函数分配地址空间怎么能给elem呢?
//if(!L.elem) exit(OVERFLOW);
.....
}
主要就是③的地方十分不解了,大家说该怎么理解呢?
论坛积分不多,大家见谅。
[解决办法]
L.elem=(ElemType *)malloc(.....);(ElemType *)将分配的空间强制转换成指针类型,给指针的首地址
[解决办法]
L.elem=(ElemType *)malloc(.....);
elem指针指向一段内存,这段内存申请在堆上。
[解决办法]