一个单链表程序序不知道为什么不行

一个简单的链表使用程序,不知道为什么输入完成只会程序就会提示出错。_百度知道
一个简单的链表使用程序,不知道为什么输入完成只会程序就会提示出错。
#include&stdio.h&
#include&stdlib.h&
#include&string.h&
#define size 40
struct film
char name[size];
struct film *
struct film *last, *
int main(void)
struct film * head=NULL;
我有更好的答案
free(receive);//释放了指针所指的节点.receive = receive-&//右边的receive所指的节点已经被你释放了啊,不存在了。你已经把指针所指的空间释放掉了,还怎么去用它得到下一个节点的指针。可以这样写struct film * temp=NULL;while (receive != NULL) {temp = receive-&
free(receive);receive=temp; }//注意,你free掉的只是指针指向的那个空间。指针这个变量还是存在的。
我这样改了之后,还是会出错。
我运行了下,没任何问题啊// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include &stdafx.h&#include&stdio.h&#include&stdlib.h&#include&string.h&#define size 40struct film{ char name[size]; int &class1; struct film *};struct film *last, *int main(void){ struct film * head = NULL; char input[size]; puts(&请输入电影名(输入空行结束输入)&); while (gets_s(input) != NULL&&input[0] != '\0') {
receive = (struct film *)malloc(sizeof(struct film));
strcpy_s(receive-&name, input);
puts(&请输入评分&);
scanf_s(&%d&, &receive-&class1);
if (head == NULL)
last-&point =
receive-&point = NULL;
while (getchar() != '\n')
puts(&请输入电影名(输入空行结束输入)&);
last = } if (head == NULL)
printf(&你没有输入任何电影的信息\n&); else {
puts(&这是你输入的电影列表&);
while (receive != NULL)
printf(&电影名:%s\n&, receive-&name);
printf(&你的评分:%d\n&, receive-&class1);
receive = receive-&
} } receive = film * temp = NULL; while (receive != NULL) {
temp = receive-&
free(receive);
receive = } return 0;}
..不知道为什么用你的代码就不会报错了,但是还是十分感谢你。
采纳率:65%
你直接free(receive)就好了,不要用循环的
但是我申请了好几个内存啊,直接free(receive)的话只能把第一个申请的内存释放掉吧?
free会把malloc申请的内存全释放掉,你使用循环的时候,前一次循环已经释放掉了内存,再去使用receive就会有错咯
为您推荐:
其他类似问题
链表的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。数据结构链表问题,谁能帮帮我啊!我不知道我的程序为什么不能输出出来!!郁闷··高人帮忙看一下··_百度知道
数据结构链表问题,谁能帮帮我啊!我不知道我的程序为什么不能输出出来!!郁闷··高人帮忙看一下··
#include &stdio.h&
#include&conio.h&
typedef struct LNode
struct LNode *
}LNode,*LinkL
LinkList *p,*q;
void CreatList(LinkList *L,int n)
*L=(LinkList)malloc(sizeof(LNode));
(*L)-&next=NULL;
我有更好的答案
LinkList *p,*q;
//应该是LinkList p,q;因为你前面已经用typedef struct LNode *LinkLp=(LinkList *)malloc(sizeof(LNode));
/*应该是p=(LinkList )malloc(sizeof(LNode));
其他的同理,只有 void CreatList(LinkList *L,int n)可以这样,因为这里的L是一个指向指针的指针
但是,我的程序是一点错误也没有啊!!1我们老师叫我们用双向指针做啊
为您推荐:
其他类似问题
您可能关注的内容
链表的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。01-2601-2601-2601-2601-2601-26
也许你感兴趣你好。。最近用MFC做个小程序,有点疑问,不知道能不能解答下呢。。。(PД`q。)•。'゜_百度知道
你好。。最近用MFC做个小程序,有点疑问,不知道能不能解答下呢。。。(PД`q。)•。'゜
如果我做一个问卷调查的程序,就是一道题选完继续跳出下一题直到提交的那种形式。
把所有的问题文本放在了一个链表里,对话框里的问题是链表里每个节点的文本输出的(每个节点的文本输出两道题)。
我现在的想法是做20个题目的对话框,每个对话框做一个类,...
我有更好的答案
多个对话框公用一个链表指针很容易,比如放在你自己的APP类中,AfxGetApp()全局函数就可以进行访问;放在一个对话框没有问题。如果像楼上说的使用字符串有问题或者界面不能实现,关注CTabCtrl的Wizard模式,这个是实现“下一步”模式的典型方法。
采纳率:85%
为什么使用多个对话框,如果多个对话框共同使用同一个链表,可以使用全局链表。
每个问题的界面难道还要区别吗?没有必要的话只有一个对话框就可以了啊,你只需要修改显示在对话框上的字符串就可以实现你的功能了啊
为您推荐:
其他类似问题
mfc的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 c程序链表结构指针 的文章

 

随机推荐