首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

数组指针的使用不明白的一点,望大家帮忙解答,该如何处理

2012-03-18 
数组指针的使用不明白的一点,望大家帮忙解答(教材:数据结构C语言版 严蔚敏)P22、P23学习线性表的过程中有些

数组指针的使用不明白的一点,望大家帮忙解答
(教材:数据结构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就可以访问后边的的任意一……

热点排行