c语言该内存不能为written
‘壹’ c语言初学者,运行时出现“该内存不能为"written"”
#include<stdio.h>
void main()
{
int a[10];数组尽量多开10%的空间,以避免数组越界
int n,m=0,t=0;
printf("请输入十个数:");
for(n=0;n<10;n++)
scanf("%d",&a[n]);
for(n=0;n<10;n++)
for(m=1;m<10-n;m++)
if(a[m]>a[m+1])///////根据你的程序,意思应该是冒泡排序,修改点之一
{ ////////////////你的程序这儿有个大括号丢了,这是导致数组越界的原因,就是不能为written
t=a[m];a[m]=a[m+1];a[m+1]=t;
}
for(n=0;n<10;n++)
printf("%d ",a[n]);
}
这是修改完的程序,上面有注释
‘贰’ C语言 该内存不能为written
scanf("%c",x);
修改为
scanf("%c",&x);
{x=x-32,printf("%c",x);} 中间的逗号 换成分号
‘叁’ c语言中内存不能为written
是b<20不是b<=20下面的c也一样
‘肆’ C语言的错误提示中“该内存不能为"written"是什么意思啊
scanf("%d",a[i]);这里有问题,应该改为scanf("%d",&a[i]);少了一个取地址符,你修改后的不出现问题,是你给数组赋了初值,在scanf("%d",a[i]);没有获取到值,但不影响下面的操作。
‘伍’ 该内存不能为written怎么办
内存不能为written解决办法:
通过按快捷键“WIN+R”弹出运行。
输入cmd后点击确定按钮,进入DOS命令界面。
命令提示符下输入:for%1in(%windir%system32*.dll)doregsvr32.exe/s%1,输好代码后,敲击回车键。
系统开始重新注册dll文件,这需要稍微等待一段时间,等dll文件重新注册完成后内存不能为read或written的问题就解决了。