C语言:0xC0000005: 写入位置 0x00000000 时发生访问冲突。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言:0xC0000005: 写入位置 0x00000000 时发生访问冲突。相关的知识,希望对你有一定的参考价值。

分了两个文件来写:

file1:
#include<stdio.h>
#include <stdlib.h>
#define N 10
int a[N];
void main()

int menu();
extern void input(int b[]);
void sequence();
void search();
void output();
int n;
while (1)

switch (menu())

case 1:input(a[N]); break;
case 2:sequence(); break;
case 3:search(); break;
case 4:output(); break;
case 5:exit(0);



//菜单
int menu()

int order;
puts("********************");
puts("* 1.数据输入 *");
puts("* 2.起泡排序 *");
puts("* 3.查找 *");
puts("* 4.数据输出 *");
puts("* 5.退出 *");
puts("********************");
scanf("%d", &order);
return order;


//数据排序
void sequence()

int i, j, tmp;
for (i = 0; i<N - 1; i++)

for (j = 0; j<N - 1 - i; j++)

if (a[j]>a[j + 1])

tmp = a[j]; a[j] = a[j + 1]; a[j + 1] = tmp;



puts("排序完成");

//数据查找
void search()

int min = 0, max = N - 1, mid, num;
puts("请输入需要查找的数");
scanf("%d", &num);
while (min <= max)

mid = (min + max) / 2;
if (a[mid] == num) printf("%d在数组的第%d个\n", num, mid + 1); break;
if (a[mid]<num) min += 1;
if (a[mid]>num) max -= 1;

if (min>max) printf("%d不在数组中\n", num);

//数据输出
void output()

int i;
puts("输出排序后的数据");
for (i = 0; i<N; i++)
printf("%d ", a[i]);
puts("");

————————————————————————————
file2:
//数据输入
#define N 10
extern void input(int a[])

int i;
printf("请输入%d个数字\n", N);
for (i = 0; i<N; i++)

printf("输入第%d个数字:", i + 1);
scanf("%d", &a[i]);

puts("输入完毕");

case 1:input(a[N]); break; // 参数改成input(a); 建议楼主单步调试,这种问题一般都是访问内存出错,很容易就能调试出来 参考技术A 指针错了 内存都溢出了追问

怎么改?

追答

目测是 input(a[N]) 传个地址过去就行了 input(a); input(a[N]) 表示 a[10] 首先一共都才a[9] 10 就超出数组了 其次extern void input(int a[]) 是传入一个数组。。。额

追问

把input(a[N])改成input(a); 还是不行

以上是关于C语言:0xC0000005: 写入位置 0x00000000 时发生访问冲突。的主要内容,如果未能解决你的问题,请参考以下文章

写入位置0x00460000时发生访问冲突,这是啥原因?

IXAudio2 - 0xC0000005:访问冲突写入位置 0x00000000

C++:0xC0000005:访问冲突写入位置0x00000000

处有未经处理的异常:0xC0000005:写入位置0x00EFA000时发生访问冲突.

c++中的 0x004114a4 处有未经处理的异常: 0xC0000005: 写入位置 0xcccccccc 时发生访

0xC0000005: 写入位置 0x0000000002450040 时发生访问冲突