不能正确运行,程序没执行完异常退出
#include
using namespace std;
////////////////////////////////////////////////////////////////////////////
#define ERROR 0
#define OK 1
typedef int Status; //单链表中的元素为整型
typedef int ElemType;
////////////////////////////////////////////////////////////////////////////
//单链表的类型定义
typedef struct LNode {
ElemType data; // 数据域
struct LNode* next; // 指针域
}LNode, * LinkList;
////////////////////////////////////////////////////////////////////////////
//创建含n个元素的非递减有序单链表 ,注意插入排序
void CreateList_Lsort(LinkList& L,int n) {
L->next = NULL;
LNode* p_new = L->next;
//新建立一个数组存放输入的元素的值
int a[1024];
//利用冒泡发先对输入的数据进行排序
for (int m = 0; m < n; ++m) { cin >> a[m]; }
int u, v,temp=0;
for(u=0;ufor(v=0;v1;++v)
{
if (a[v] <= a[v + 1]) { temp = a[v]; a[v] = a[v + 1]; a[v + 1] = temp; }
}
//创建一个链表按序将已经排列好的数据存放到链表中
for (int j = 0; j < n; ++j) {
p_new = new LNode;
p_new->data=a[j];
p_new->next = L->next;
L->next = p_new;
}
}//CreateList_Lsort
//输出单链表
Status PrintList_L(LinkList L) {
LinkList p = L->next;
while (p) {
cout << p->data << " ";
p = p->next;
}
cout << endl;
return OK;
}//PrintList_L
int main() {
LinkList La;
int n;
cin >> n;//输入线性链表La的长度
CreateList_Lsort(La, n);
PrintList_L(La);
return 0;
}
0x00ED6A4B 处(位于 test.exe 中)引发的异常: 0xC0000005: 写入位置 0xCCCCCCD0 时发生访问冲突。
那就是程序崩溃了
创建函数一开始就会崩溃
void CreateList_Lsort(LinkList& L,int n) {
L->next = NULL;
LinkList是个指针,还没有分配空间,你就开始操作它的成员,就会崩溃
先L = new LinkList;
然后才是L->next = NULL;
main里 LinkList La;(你代码中分号是全角的)有问题,La是个指针,没有分配内存,CreateList_Lsort中直接 L->next = NULL;,就会报错。
main中改为LNode La;,对应的下面2个函数参数也要修改一下
CreateList_Lsort(&La, n);
PrintList_L(&La);