【求助】请问这个程序通过编译了还是被要求中断是怎么回事
0x00C418BC 处(位于 demo1.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000004 时发生访问冲突。如有适用于此异常的处理程序,该程序便可安全地继续运行。
会出现上面的提示。请问是怎么回事?
#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); }