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的問題就解決了。