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

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


会出现上面的提示。请问是怎么回事?
2015-10-03 21:26
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:14 
及有可能是system不高兴,有点小情绪什么的,哄哄就好了
2015-10-03 21:29
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
收藏
得分:0 
回复 2楼 hjx1120
版版别调皮 真心求助阿 好捉急
2015-10-03 21:34
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
回复 3楼 抹茶裙边
楼主的信息这么少,谁知道是什么情况呀
2015-10-03 21:36
抹茶裙边
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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 6楼 抹茶裙边
说实话,当初学C用的TC,我现在学的java这种代码不跑一遍还真不知道怎么改

剑栈风樯各苦辛,别时冰雪到时春
2015-10-03 22:57
抹茶裙边
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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
q->next = p;
q = q->next;
上一句让q下一个结点不为null而为p
那么q=q->next,q就是p,p可不为null是p->next为null哦

剑栈风樯各苦辛,别时冰雪到时春
2015-10-03 23:12
抹茶裙边
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2015-10-3
收藏
得分:0 
回复 9楼 林月儿
噢噢~对对~明白辣

谢谢大神提点
2015-10-03 23:16
快速回复:【求助】请问这个程序通过编译了还是被要求中断是怎么回事
数据加载中...
 
   



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

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