|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 奥普瓯江 于 2021-10-30 17:43 编辑
原理:
备注:
这里有一个错误就是在释放malloc上,因为我对malloc函数理解有问题,所以造成了,多次释放
- void DeStack(SqStack **E) //释放内存
- {
- Elemtype *temp;
- for(int i = 0; i < ((*E)->StackSize); i++)
- {
- temp = (*E)->base;
- (*E)->base++;
- free(temp);
- }
- free(*E);
- }
复制代码
运行错误
我一共用malloc在能存中申请了MAXSIZE个空间,是一次性申请的所以释放也应该是一次性的,我只需要释放一次(*E)->base但是我在这个程序中却释放了,(*E)->StackSize次所以在调试时会出现内存泄漏,或者时提示,用vs6.0进行调试会出现以下提示
在CodeBlock中调试会出现执行free(temp);这个代码第三遍后出现错误结束程序
代码:
|
|