C语言realloc的用法

int*newbase=(int*)realloc(oldbase,(old_length+5)*sizeof(int))realloc是指在原先的那块内存上在其后方添加... int *newbase = (int*)realloc(oldbase,(old_length+5)*sizeof(int))
realloc是指在原先的那块内存上在其后方添加了5个内存空间,还是重新又找了块空间一下分配出来?oldbase = newbase这一步需不需要?如果说是在原来那块内存上接着分配增加的空间,那恰好这连续的空间正好正被使用,那realloc函数岂不是极其容易分配失败?而如果又重新找了一块空间一下分配,那之前使用的的那部分内存岂不是泄露了?
展开
 我来答
xu84403451
2013-03-02 · 超过25用户采纳过TA的回答
知道答主
回答量:197
采纳率:0%
帮助的人:141万
展开全部
你上realloc,百度百科上看吧。http://baike.baidu.com/view/736230.htm
但新内存的大小是可大,可小的。缩小时会丢失内容而已
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
2013-03-02 · TA获得超过6807个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1699万
展开全部
可以把realloc理解成free加上malloc……
追问
realloc会重新找内存分配,原来那块内存释放掉?这么说oldbase = newbase是必须的了?
追答
是……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式