當前位置:首頁 » 編程語言 » c語言內存不能為written
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言內存不能為written

發布時間: 2022-09-23 14:10:33

『壹』 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("%ld",a);
->這個就是一個嚴重錯誤:scanf("%ld", &a);
a沒有初始值,scanf會往內存a處,寫數據,發生這個錯誤提示。
慢慢學習吧,每一個標點。

『叄』 c語言中內存不能為written

是b<20不是b<=20下面的c也一樣

『肆』 c語言編寫好程序運行提示內存不能為written

#include <stdio.h>
int tf(int xx,int yy,int bbx,int bby)
{
if((xx==bbx)||(yy==bby))//這里
{
return(1);
}
else
{
return(0);
}
}
int xyprint(int x,int y)
{
if (y==0)
{
return(0);
}
else
{
int i;
for(i=0;i<80;i++)
{
printf("1");
}
for(i=1;i<(y-1);i++)
{printf("1\n");}
printf("1");
for(i=0;i<x-1;i++)
{
printf(" ");
}

printf("O\n");
}
return 0;
}
int mov(int x,int y,int key)
{
int i;
switch(key)
{case 1:y--;i=1;break;
case 2:y++;i=1;break;
case 3:x--;i=0;break;
case 4:x++;i=0;break;
default:return(0);
}

if(i)
{
return(y);
}
else
{
return(x);
}

}
int xprint(int x,int by,int y)
{
int i;
for(i=0;i<(y-by)-1;i++)
{
printf("1\n");
}
printf("1");
for(i=0;i<x-1;i++)
{printf(" ");}
printf("O");
return 0;
}
int main(void)
{

int ax;
int by;
int no;
int x;
int y;
char key[100];//這里
for(x=0;x<100;x++)
{
key[x]=0;
}
x=0;

ax=6;
by=5;
x=5;
y=5;

no=xyprint(ax,by);

no=xprint(x,by,y);
printf("\n\n\n\n\n\n");
gets(key);

for(no=0;no<50;no++){

switch(key[no]){
case 48:key[no]=0;break;
case 49:key[no]=1;break;
case 50:key[no]=2;break;
case 51:key[no]=3;break;
case 52:key[no]=4;break;
case 53:key[no]=5;break;
case 54:key[no]=6;break;
case 55:key[no]=7;break;
case 56:key[no]=8;break;
case 57:key[no]=9;break;
default:key[no]=0;
}

}
for(no=0;key[no]<5;no++)//這里
{
/*
switch(key[no]){
case 48:key[no]=0;break;
case 49:key[no]=1;break;
case 50:key[no]=2;break;
case 51:key[no]=3;break;
case 52:key[no]=4;break;
case 53:key[no]=5;break;
case 54:key[no]=6;break;
case 55:key[no]=7;break;
case 56:key[no]=8;break;
case 57:key[no]=9;break;
default:key[no]=0;
} */
switch(key[no]){
case 1:;
case 2:y=mov(x,y,key[no]);break;
case 3:;
case 4:x=mov(x,y,key[no]);break;
default:printf("wrony key");goto end;
}
}
puts(key);
no=tf(x,y,ax,by);
if(no!=0)
{printf("sure");}
else
{printf("you have to try again");}
end:return 0;
}

『伍』 c語言中內存不能為written是什麼意思

內存不能為written,一般來說是訪問了非法內存或者出現了內存越界。
你檢查一下你的代碼。

『陸』 C語言 該內存不能為written

scanf("%c",x);

修改為

scanf("%c",&x);

{x=x-32,printf("%c",x);} 中間的逗號 換成分號

『柒』 c語言編寫好程序運行提示內存不能為written

操作系統對內存塊都有隻讀和寫的標示。數組的下標超過數組范圍時,就會非法訪問了。最常見的崩潰就是數組越界,你這里就是越界問題。

『捌』 C語言 編輯內存不能為WRITTEN,求解,輸入循環的第二次循環就報錯。

內存不能為"Read"或"written"(原因以及解決方案):
(【sql1981】原創答案,引用請說明原作者:sql1981,未通知原作者嚴禁復制本答案!!)
系統出現內存不能為"Read"或"written"的原因:

1、驅動不穩定,與系統不兼容,這最容易出現內存不能為 Read 或者文件保護

2、系統安裝了一個或者多個流氓軟體,這出現 IE 或者系統崩潰的機會也比較大,也有可能出現文件保護

3、系統載入的程序或者系統正在運行的程序之間有沖突,尤其是部分殺毒軟體監控程序

4、系統本身存在漏洞,導致容易受到網路攻擊。

5、病毒問題也是主要導致內存不能為 Read、文件保護、Explorer.exe 錯誤……

6、如果在玩游戲時候出現內存不能為 Read,則很大可能是顯卡驅動不適合(這里的不適合有不適合該游戲、不適合電腦的顯卡),也有可能是 DX9.0C 版本不夠新或者不符合該游戲、顯卡驅動

7、部分軟體本身自身不足的問題

8、電腦硬體過熱,也是導致內存不能為 Read 的原因之一。

9、電腦內存與主板兼容性不好也是導致內存不能為 Read 的致命原因!

提供幾種解決方案:
1、一次運行注冊所有dll,方法如下:

開始——運行,輸入cmd 回車在命令提示符下輸入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
這個命令你慢慢輸,仔細點,輸入正確的話會看到飛快地滾屏 否則……否則失敗就是沒這效果。回車後慢慢等(需要點時間1-2分鍾) 都運行完再嘗試之前的操作,看還有沒有出現不能為read的現象。

2、在控制面板的添加/刪除程序中看看你是否安裝了微軟NET.Framework,如果已經安裝了,可以考慮卸載它,當然如果你以後在其它程序需要NET.Framework時候,可以再重新安裝。
另外,如果你用的是ATI顯卡並且你用的是SP2的補丁(一些ATI的顯卡驅動需要在NET.Framework正常工作的環境下)。這種情況你可以找一款不需要NET.Framework支持的ATI顯卡驅動。
如果以上兩種方法並不能完全解決問題,你試著用一下360安全衛士的的「IE修復」或其他類似軟體,並可以查查是否有病毒之類的。〔微軟NET.Framework升級到1.1版應該沒問題了〕

3、引起這個問題的原因很多。一般來講就是給系統打上補丁和更換內存、給內存換個插槽這3種方法來解決。[系統補丁只要到Microsoft Update網站在線更新就可以了!

『玖』 C語言高手來! 內存不能為written

數組下標越界了。
if(a[i]<temp)
{
for(j=10;j>=i;j--) 這個地方,當 j = 10時,下面的操作是a[11] = a[10]; 而a[11]越界了
a[j+1]=a[j];
a[i]=temp;
break;
}