c语言编译时该内存不能为read?

我初学c,编的一道题,编译过了,结果刚输完数组就提示该内存不能为read……求解决。#include<stdio.h>#include<stdlib.h>voidpaix... 我初学c,编的一道题,编译过了,结果刚输完数组就提示该内存不能为read……求解决。
#include<stdio.h>
#include<stdlib.h>
void paixu(int a[])/*排序函数*/
{ int i,j,k,temp;
for(i=1;i<=9;i++)
{for(j=0;j<=i;j++)
{if(a[i]<a[j])
k=j;}
temp=a[k];a[k]=a[i];a[i]=temp;}
}
int search(int a[],int x,int n)/*查找函数*/
{
int i,j,k;
i=n-1;k=0;
while(i>=j)
{k=(i+j)/2;
if(x>a[k])i=k-1;
else if(x<a[k])j=k+1;
else return (k);}
return(0);
}
int main()
{ int a[9];int i,x,n;
n=9;
printf("input 10 numbers:\n");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
paixu(a);
for(i=0;i<=9;i++)
printf("%d",a[i]);
printf("input a number:\n");
scanf("%d",&x);
n=search(a,x,n);
if(n=0)printf("error\n");
else printf("x=a[%d]",n);
system("pause");
return 0;
}
展开
 我来答
yang_bigarm
推荐于2016-06-03 · TA获得超过3949个赞
知道大有可为答主
回答量:1664
采纳率:100%
帮助的人:612万
展开全部
错在这里啦:
int a[9];int i,x,n; //a是有9个元素的数组
n=9;
printf("input 10 numbers:\n");
for(i=0;i<=9;i++) //i从0到9一共是10个数字
scanf("%d",&a[i]);
看明白了吗?10个萝卜系统只给了你9个坑,还有一个装不下了,你往哪里放呢?操作系统都是有内存管理功能的,你把数据放到了不该放的地方,它就告诉你内存不能为读。

建议:每次用指针的时候,请仔细检查它是否为空,或者指针(数组下标)是否越界了。一般显示内存不能为读都是这2种情况。
洽好夏天
2012-03-24 · 与其听着别人的成功,不如拼出自己的精彩!
洽好夏天
采纳数:5919 获赞数:22160

向TA提问 私信TA
展开全部
出现:0x???????? 指令引用的0x????????内存。该内存不能为"read"或"written"。
1、对电脑没有影响或偶尔出现,不用管它,【重启电脑】后可能会自动消失。
2、盗版系统或Ghost版本系统,系统文件错误或丢失,也会出现该问题,及时安装官方发行的补丁,{检查电脑年、月、日是否正确}。建议:安装【正版操作系统、纯净版操作系统】。
3、病毒引起的:升级杀毒软件或下载专杀工具,对电脑全盘杀毒。Ps:xian86913
4、硬件引起的:如果是内存条引起的,把内存条拆下清理干净重新安装。必要时【更换】内存条。(硬件上很少出现该问题)Ps:xian86913
5、软件引起的:安装的软件与系统或其它软件发生冲突,盗版或带病毒的(游戏等)其它软件,也会出现该问题。还有就是有些游戏不支持双核或多核电脑,请更换其它版本试试。如果不行只有卸载该游戏,一定要卸载干净,否则还会出现该问题。【这里主要说的是检查开机启动项,把没必要启动的启动项禁止开机启动】Ps:xian86913
打开运行浏览器、播放器、游戏、QQ等,出现该问题时。一般的解决办法就是卸载该软件重新安装。如果不能解决,需要更换同类型其它版本的软件,或找到发生冲突的软件卸载它,问题才能解决。
6、检查驱动是否出现问题,重新安装驱动或及时更新驱动。Ps:xian86913

以下的方法也可以试试:Ps:xian86913
◆开始→运行→输入cmd→回车,在命令提示符下输入下面命令
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1回车。
完成后,在输入下面的
for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车。
如果怕输入错误,可以复制这两条指令,然后在命令提示符后击鼠标右键,打“粘贴”,回车,耐心等待,直到屏幕滚动停止为止。(重启电脑)。Ps:xian86913
●在检查运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 下,应该只有一个正常的键值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。如果还有一个(默认)不用管它,一般它为空。Ps:xian86913

【大杀招:重新更换操作系统】
如果重新更换操作系统还是不能解决问题,建议速度去维修站找专业人士解决!

网络总结+个人经验——仅供参考!

希望我的回答对你有所帮助,祝你好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式