问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求解关于C语言的释放内存问题?

发布网友 发布时间:2022-04-29 11:33

我来回答

2个回答

热心网友 时间:2022-06-27 00:18

是InitStack(s)吧?程序里就没有InitSqlist()。
因为栈内容没有初始化,所以访问那个s->top时就出错了,并不是分配内存的malloc的问题。
把主函数里这两行改一下:
Stack *s; /* 这里没有给s分配内存,这只是一个Stack的指针*/
InitStack(s);
改为:
Stack s; /* 这样就给s分配空间了, s.top现在就可以用了*/
InitStack(&s);
这个问题就好了。

相应地,以后使用栈时注意使用指针就好:
ShowStack(s);
改为
ShowStack(&s);

还有一种做法,就是在:
Stack *s;
InitStack(s);
中间给指针s分配内存,让指针s指向正确的结构:
Stack *s;
s = (Stack*)malloc(sizeof(Stack));
InitStack(s);

热心网友 时间:2022-06-27 00:18

可以释放p。
free(r)释放的是指针r指向的内存,因为r和p指向同一块内存,所以释放r就相当于释放了p。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Hive笔记 Hive-元数据 英语low是什么意思 Low low 的是什么意思? 如何打开电脑设置的打印机电脑打印设置在哪里打开 使用电脑打印机怎么设置打印机和电脑怎样连接该如何设置 win10打印机设置在哪里 win10打印机设置方法介绍 怎么在电脑上设置打印机在电脑上怎么找打印机设置 怎样为电脑设置打印机电脑里打印机设置在哪 电脑打印机在哪里设置电脑上的打印机在哪里 C语言中是如何释放内存单元的;原理又是什么? 微信如何图片加表情 如何查看手机上已连接的wifi密码? 初中800字半命题作文《站在……》在线等 站在校园的门口 作文 初三的作文帮帮忙 要800字的 作文特殊的站立700字 《站起来,勇往直前》800字作文谁能帮我 给篇800字 题目为 站起来做人 的作文。高2 努比亚z9max精英版怎么查看wifi密码 什么的站立。作文600字 查下农历1997年11月23日的公历是几月几日 求以“站立”为文题,800字作文! 手机root不了,如何能查看wifi密码?,重点是没root权限,努比亚手机,万能的网友,帮帮我吧 以'那一次,我站起来了'为题的初中作文.(700字左右) 努比亚 z9 mini精英版连接过的wifi密码怎么查看? 以“站立是最美丽的风景”为题的800字议论作文 农历十一月二十三也是冬至有那些年份 努比亚z17mini怎么查看已经连接的wifi密码? 以人只有站起来后世界才属于他为话题,写一篇不少于800字作文 二十年前是冬至是哪一天 C语言内存释放问题 看C语言的书中说“释放存储空间”,是什么意思?什么叫做释放,为什么叫... c语言中free函数释放内存后,该内存的里边的数据还有吗? c语言释放内存的问题 C语言 调用函数完后释放内存吗? C语言中如何释放已定义的数组空间? 在C语言进行编程中,为什么要释放旧内存? 内存释放的时候具体进行了什么操作(C语言) C语言 内存释放的问题 华为荣耀V10连续点击三下缩放屏幕功能怎么弄 设置里没有高级模式 C语言用完申请来的内存怎么释放 C语言中再次释放已经释放的空间会造成什么后果? 华为荣耀10青春版,连续点几下屏幕,图标就会变大,不知怎么办? C语言中怎样清空内存动态分配的堆空间 在C语言中,如何释放动态数组里面某一个元素所在的内存? c语言分配内存方式有哪些 开发一个聊天交友软件,需要哪些费用?开发软件大概多少钱?需要服务器一年多少钱?还有其他什么费用? 华为荣耀10如何使用 网络视频会议软件,怎么收费呢,用过的人来说说,谢谢啊 好视通视频会议软件是免费的还是收费的?如果收费是怎样收的?