德干苏丹 2021-12-21 09:18 采纳率: 0%
浏览 20

顺序表初始化报错0xC0000005: 写入位置 0x00000008 时发生访问冲突,如何解决?

尝试顺序表初始化报错

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <stack>
#include <algorithm>
#define MaxSize 1000
typedef int KeyType;
typedef int DataType;

typedef struct entry {
    KeyType key;
    DataType data;
}Entry;
typedef struct list {
    int n;
    Entry D[MaxSize];
}List;


const int length = 10000;  //数组大小
const int cnt = 50;     //重复执行次数

int a[length + 10];
//排序实现略去
void InitList(List &L)
{
    for (int i = 0; i < MaxSize; i++)
    {
        L.D[i].data = 0;
        L.D[i].key = 0;
    }
    *&L.n = 0;                //初始化长度为0写入位置 0xCCCCCCCC 时发生访问冲突。

}

int main()
{
    int choice;
    List *L = NULL;
    InitList(*L);
    while (1)
    {
        Menu();
        L->n = length;
        srand(time(0));
        for (int i = 0; i < L->n; i++)
        {
            L->D[i].data = rand();
        }
        scanf_s("%d",&choice);
        if (choice >= 1 && choice <= 6)
        {
            SortOne(L,choice);
        }
        else if (choice == 0)
        {
            return 0;
        }
        else
        {
            printf("输入有误\n");
        }
    }
    return 0;
}

调试后发生异常

img


直接执行则程序直接结束。
尝试了L、&L等各种修改,还是会报错。
求帮我实现运行。

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-12-21 09:32
    关注

    List *L = NULL;
    你都没分配空间,怎么赋值呢,当然崩溃了
    你这完全不需要定义成指针啊,直接List L;就可以了

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 12月21日

悬赏问题

  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!
  • ¥15 这个如何解决详细步骤