下面的程序中数组的下标是不是越界了 。。。???(李春保的数据结构) 在线等高手讲 。。

wangbin995 2008-03-29 12:13:34

#define MaxSize 50

typedef struct
{ ElemType data[MaxSize]; /*存放顺序表元素*/
int length; /*存放顺序表的长度*/
} SqList; /*顺序表的类型定义*/

int ListInsert(SqList *&L, int i, ElemType e) /*插入数据元素的函数*/
{
int j;
if (i<1 || i > L->length+1)
return 0; /*参数错误,返回0*/
i--; /*将顺序表逻辑位序转化为物理位序*/
for (j = L->length; j>i; j--) /*将data[i]及后面元素后移一个位置*/
L->data[j] = L->data[j-1];
L->data[i] = e; /*插入元素e*/
L->length++; /*顺序表长度增1*/
return 1;
}


其中for循环下面的那句:L->data[j] = L->data[j-1]; 数组下标越界了吧,data[j]的值不是不允许访问的吗?
再问个问题:在函数的形参列表中,SqList *&L 是什么意思?对指针的引用?
...全文
125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelloDan 2008-03-29
  • 打赏
  • 举报
回复
其中for循环下面的那句:L->data[j] = L->data[j-1]; 数组下标越界了吧,data[j]的值不是不允许访问的吗?
------------------------------------------
看你的长度具体是怎样定义的吧。如果也是从0开始的,是可以的。

再问个问题:在函数的形参列表中,SqList *&L 是什么意思?对指针的引用?
------------------------------------
指针的引用
wangbin995 2008-03-29
  • 打赏
  • 举报
回复
恩。。是我自己看错了,如果它哪里不是data[j],而是data[MaxSize]的话那就是越界了吧。。。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧