顺序线性表的插入问题

清竹小雨 2012-06-30 02:44:27
当数据插入的时候,如果申请的内存空间没有了,重新申请更大空间时,为什么不用初始化插入位置前的那段数据
例如:
Status  ListInsert(SqList &L,LONG index,ElemType e)   
//初始条件:线性表L已存在,1<=i<=ListLength(L)+1
//操作结果:在L中的第i个元素之前插入新的数据元素e,L的长度加1
{
if((index<1) || (index>L.length+1)){
cout<<"插入的位置不合理"<<endl;
return ERROR;
}

if(L.length>=L.size){
ElemType *newbase=(ElemType*)realloc(L.elem,
(L.size+LISTINCREMENT)*sizeof(ElemType));
if(newbase==NULL){
cout<<"增量存储空间分配失败"<<endl;
exit(OVERFLOW);
}
else{
L.elem=newbase;
L.size+=LISTINCREMENT;
}

}

//移动元素
int i=L.length;
for(;i>index-1;i--)
L.elem[i]=L.elem[i-1];

//插入元素
L.elem[index-1]=e;

//修改表长
L.length++;
return OK;
}
...全文
162 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
清竹小雨 2012-06-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

可你知道relloac的工作原理吗
[/Quote]
The size of the memory block pointed to by the ptr parameter is changed to the size bytes, expanding or reducing the amount of memory available in the block.

The function may move the memory block to a new location, in which case the new location is returned. The content of the memory block is preserved up to the lesser of the new and old sizes, even if the block is moved. If the new size is larger, the value of the newly allocated portion is indeterminate.

In case that ptr is NULL, the function behaves exactly as malloc, assigning a new block of size bytes and returning a pointer to the beginning of it.

In case that the size is 0, the memory previously allocated in ptr is deallocated as if a call to free was made, and a NULL pointer is returned.LL, the function behaves exactly as malloc, assigning a new block of size bytes and returning a pointer to the beginning of it.

In case that the size is 0, the memory previously allocated in ptr is deallocated as if a call to free was made, and a NULL pointer is returned.
孑虫 2012-06-30
  • 打赏
  • 举报
回复
可你知道relloac的工作原理吗
清竹小雨 2012-06-30
  • 打赏
  • 举报
回复
找到原因了,原来是他用的是realloc函数而不是malloc函数

69,369

社区成员

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

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