读书人

数组指针的使用不明白的一点望大家帮

发布时间: 2012-03-18 13:55:39 作者: rapoo

数组指针的使用不明白的一点,望大家帮忙解答
(教材:数据结构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指针指向一段内存,这段内存申请在堆上。
[解决办法]

探讨

引用:

L.elem=(ElemType *)malloc(.....);(ElemType *)将分配的空间强制转换成指针类型,给指针的首地址


谢谢你的回答!
malloc分配地址后返回 “void*” 类型,然后强制转换为 “ElemType *” 指针类型,elem指向这段刚分配的地址块的首地址,通过elem就可以访问后边的的任意一……

读书人网 >软件架构设计

热点推荐