| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2368 人关注过本帖
标题:【求助】请问这个程序通过编译了还是被要求中断是怎么回事
取消只看楼主 加入收藏
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:7 
【求助】请问这个程序通过编译了还是被要求中断是怎么回事
0x00C418BC 处(位于 demo1.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000004 时发生访问冲突。

如有适用于此异常的处理程序,该程序便可安全地继续运行。


会出现上面的提示。请问是怎么回事?
2015-10-03 21:26
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
收藏
得分:0 
回复 2楼 hjx1120
版版别调皮 真心求助阿 好捉急
2015-10-03 21:34
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
收藏
得分:0 
回复 4楼 hjx1120
程序代码:
#include<stdio.h>
#include<stdlib.h>
#define Listsize 100

struct Node {
    int data;
    struct Node *next;
};

typedef struct Node ListNode;
typedef struct Node *LinkList;

LinkList CreateCycleList(int n);
void DisplayCycleList(LinkList head);

int main()
{
    LinkList h;
    int n;
    printf("创建一个循环的单链表:\n");
    printf("请输入元素的个数:");
    scanf_s("%d", &n);
    h = CreateCycleList(n);
    DisplayCycleList(h);
    return 0;
}

LinkList CreateCycleList(int n)//创建一个不带头节点的循环单链表
{
    int e;
    LinkList head = NULL;
    ListNode *p, *q;
    int i;
    i = 1;
    q = NULL;
    while (i <= n)
    {
        printf("请输入第%d个元素:", i);
        scanf_s("%d", &e);
        if (i == 1)
        {
            head = (LinkList)malloc(sizeof(ListNode));
            head->data = e;
            head->next = NULL;
            q = head;
        }
        else
        {
            p = (LinkList)malloc(sizeof(ListNode));
            p->data = e;
            p->next = NULL;
            q = p;
        }
        i++;
    }
    if (q != NULL)
        q->next = head;

};

void DisplayCycleList(LinkList head)
{
    ListNode *p;
    p = head;
    if (p == NULL)
    {
        printf("该链表是空表");
        return;
    }
    while (p->next!= head) {
        printf("%d", p->data);
        p = p->next;
    }
    printf("%4d", p->data);
}
2015-10-03 21:37
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
收藏
得分:0 
回复 4楼 hjx1120
这是我的代码。就是创建一个循环单链表。结果运行完毕按回车的时候会出现一个警示框,就是说1楼的那个情况。

而且是最后会指到这行

while (p->next!= head) {
2015-10-03 21:40
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
收藏
得分:0 
回复 7楼 林月儿
弱弱的问您一下 我现在突然不明白

程序代码:
else
        {
            p = (LinkList)malloc(sizeof(ListNode));
            p->data = e;
            p->next = NULL;
            q->next = p;
            q = q->next;
        }
        i++;
    }
    if (q != NULL)
        q->next = head;
    return head;


这个里面为什么要判断if (q != NULL)呢?在这里面是q=p,q肯定是NULL,因为p一直指向NULL啊。。
2015-10-03 23:06
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
收藏
得分:0 
回复 9楼 林月儿
噢噢~对对~明白辣

谢谢大神提点
2015-10-03 23:16
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
收藏
得分:0 
回复 11楼 林月儿
好哒!晚安版主大大-3-
2015-10-03 23:19
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
收藏
得分:0 
回复 11楼 林月儿
林版版有时间去看看我问的那个关于约瑟夫环的问题吧 谢谢!
2015-10-04 15:51
快速回复:【求助】请问这个程序通过编译了还是被要求中断是怎么回事
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021573 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved