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++之前下标不是已经越界了吗
这么写是会存在一个下标越界问题,就是当数组已满的情况下。其他情况是不会出现越界的,老师应该是故意留下了这个bug,方便后面讲课的时候重点申明。
length是当前存储数据的长度,size才是数组的实际容量,只要大小不超过size就不越界,你应该认错变量了。