realloc 用法
参考文献: http://blog.csdn.net/snlying/article/details/4005238
返回情况 :
返回的是一个void类型的指针,调用成功。(这就再你需要的时候进行强制类型转换)
返回NULL,当需要扩展的大小(第二个参数)为0并且第一个参数不为NULL,此时原内存变成了“freed(游离)”的了。
realloc 并不保证调整后的内存空间和原来的内存空间保持同一内存地址。相反,realloc 返回的指针很可能指向一个新的地址。所以在代码中,我们必须将realloc返回的值,重新赋值给 p :
p = (int *) realloc (p, sizeof(int) *15);
newbase = (ElemType *)realloc(L,elem,(L.listsize + LISTINCREMENT)*sizeof(ElemType));
if(!newbase) exit(OVERFLOW); //存储分配失败
L.elem = newbase; //新基址
L.listsize += LISTINCREMENT; //增加存储容量