问答详情
源自:2-5 顺序表编码实战(四)

数组下标越界

 bool List::ListInsert(int i,int *e){

  if(i<0||m>m_iLength){

  return false;

  }

  for(int k=m_iLength-1;k>=i;k--){

  m_pList[k+1]=m_pList[k];

  }

  m_pList[i]=*e;

  m_iLength++;

  return true;

 }

这部分是在线性表中插入元素,但是在m_iLenght++之前下标不是已经越界了吗

提问者:明眸在心 2016-07-25 11:07

个回答

  • ziom
    2016-07-31 16:30:58

    这么写是会存在一个下标越界问题,就是当数组已满的情况下。其他情况是不会出现越界的,老师应该是故意留下了这个bug,方便后面讲课的时候重点申明。

  • qq_FLIJustLovet_03594117
    2016-07-25 16:08:12

    length是当前存储数据的长度,size才是数组的实际容量,只要大小不超过size就不越界,你应该认错变量了。