
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函数岂不是极其容易分配失败?而如果又重新找了一块空间一下分配,那之前使用的的那部分内存岂不是泄露了? 展开
realloc是指在原先的那块内存上在其后方添加了5个内存空间,还是重新又找了块空间一下分配出来?oldbase = newbase这一步需不需要?如果说是在原来那块内存上接着分配增加的空间,那恰好这连续的空间正好正被使用,那realloc函数岂不是极其容易分配失败?而如果又重新找了一块空间一下分配,那之前使用的的那部分内存岂不是泄露了? 展开
7个回答
展开全部
你上realloc,百度百科上看吧。http://baike.baidu.com/view/736230.htm
但新内存的大小是可大,可小的。缩小时会丢失内容而已
但新内存的大小是可大,可小的。缩小时会丢失内容而已
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以把realloc理解成free加上malloc……
追问
realloc会重新找内存分配,原来那块内存释放掉?这么说oldbase = newbase是必须的了?
追答
是……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |