【悬赏】数据结构,c语言版本。顺序表那块,扩容函数问题,谢谢!
第一次调用这个函数的时候可以,第二次就弹出错误中止对话框了。(第二个语句,申请空间的时候出错。)求解,谢谢...
第一次调用这个函数的时候可以,第二次就弹出错误中止对话框了。(第二个语句,申请空间的时候出错。)
求解,谢谢 展开
求解,谢谢 展开
展开全部
为谨慎起见,必须对realloc结果进行检查,
1. realloc失败的时候,返回NULL
2. realloc失败的时候,原来的内存不改变,不会释放也不会移动
3. 假如原来的内存后面还有足够多剩余内存的话,
realloc的内存=原来的内存+剩余内存,realloc还是返回原来内存的地址;
假如原来的内存后面没有足够多剩余内存的话,realloc将申请新的内存,然后把原来的内存数据拷贝到新内存里,原来的内存将被free掉,realloc返回新内存的地址。
所以从你的函数代码来看,不应该在此时free
1. realloc失败的时候,返回NULL
2. realloc失败的时候,原来的内存不改变,不会释放也不会移动
3. 假如原来的内存后面还有足够多剩余内存的话,
realloc的内存=原来的内存+剩余内存,realloc还是返回原来内存的地址;
假如原来的内存后面没有足够多剩余内存的话,realloc将申请新的内存,然后把原来的内存数据拷贝到新内存里,原来的内存将被free掉,realloc返回新内存的地址。
所以从你的函数代码来看,不应该在此时free
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
free放在外面试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询