数组长度定义的问题
//我们刚学了数据结构的顺序表,在表插入一个数据元素的算法中有一段是关于存储空间满了,增加分配的,//就是这里我有个疑问,realloc为一个已经申请了的内存空间重新申请(更改空间大小的作用),
//那么这个重新申请的空间会不会对原来已有的造成影响呢?也就是说重新申请后的得到的新顺序表的基址还是不是
//原来未增加之前的那个基址?还是重新分配就是另开辟一段新的空间,这段空间长度为L.listsize+LISTINCREMENT,与原来的空间一点关系都没有?
//还有在C++的语法中是怎么实现增加分配的?
//望不吝赐教,感激之至
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct
{
Elemtype *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量
}SqList;
..............
..............
status ListInsert_Sq(SqList &L,int i,Elemtype e)
{
//在顺序表L中第i个位置之前插入新的元素e
if(L.length>=L.listsize) //当前存储空间满,增加分配
{
newbase=(Elemtype *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(Elemtype));
L.elem=newbase; //新基址
L.listsize+=LISTINCREMENT;
}
...........
...........
}