當前位置:首頁 » 編程語言 » c語言內存不能

c語言內存不能

發布時間: 2022-07-21 07:09:07

c語言的錯誤提示中「該內存不能為"written"是什麼意思啊

scanf("%d",a[i]);這里有問題,應該改為scanf("%d",&a[i]);少了一個取地址符,你修改後的不出現問題,是你給數組賦了初值,在scanf("%d",a[i]);沒有獲取到值,但不影響下面的操作。

⑵ c語言編譯時該內存不能為read

錯在這里啦:
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種情況。

⑶ C語言 該內存不能為read!

printf("%s",x[s]);//這里 你沒有在任何地方設置0結束標記
scanf("%s%d",&x[i],&a[i]);//在輸入字元數+i大於1098時 x寫入越界 i>999 a 寫入越界 不過一般來說 輸入的n不會很多 大了輸入累 這是一個潛在的 難以出現的錯誤

⑷ C語言內存不能為read

你看"' 0x0004010ab指令引用的「0xccdfcc40」內存。'"
0x0004010ab表示你代碼中定義的一個指針或者變數。
而這個變數中的值是地址0xccdfcc40。
一般情況下,是這個變數沒有賦初值。
你再看看代碼中的變數是否有問題。

⑸ C語言程序運行內存不能為read

內存不能讀,這問題吧,一般是你的指針指向了不該指向的位置,不能讀/寫很正常。細細檢查你的指針,看看它們有沒有因為你的大意而失去控制。細節決定成敗!

⑹ 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語言運行時提示「內存不能為read」,求幫助調試

#include "stdafx.h"

int main(int argc, char* argv[])
{
int a[10]={5,7,9,5,2,5,7,9,8,2},n=10;
int k=0;
for(int i=0; i<n; i ++)
{
for(int j=i+1;j<n;i++)
if(a[i]==a[j])
a[i-k]=a[i]; //這里改成a[j-k]=a[i]; 試試!
else
k++;
}
n=n-k;
for(i=0; i<n; i ++)
printf("%4d", a[i]);
printf("\n");
return 0;
}

⑻ C語言錯誤:內存不能為read

改完後的程序如下,樓主可以試運行一下,注意以後用scanf輸入數據時的格式哦,望採納,謝謝!
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#define NULL 0
#define LEN sizeof(struct student)
struct student{
long num;
char name[100];
float score;
struct student*next;
};
int n;
struct student* creat(){
struct student*head;
struct student*p1,*p2;
n=0;
p1=p2=(struct student*)malloc(LEN);
scanf("%d%s%f",&p1->num,p1->name,&p1->score); //這里錯了,中間如果用逗號隔開,輸入時必須用逗號分隔,否則會死循環
head=NULL;
while(p1->num!=0){
n=n+1;
printf("%d %s %f\n",p1->num,p1->name,p1->score); //將輸入的值列印出來看下有無錯誤
if(n==1)
head=p1;
else p2->next=p1;
p2=p1;
p1=(struct student*)malloc(LEN);
scanf("%d%s%f",&p1->num,p1->name,&p1->score); //同上,中間如果用逗號隔開,輸入時必須用逗號分隔,否則會死循環
}
p2->next=NULL;
return(head);
}
void main(){
struct student *head,*stu;
long del_num;
printf("input records:\n");
head=creat();
}

熱點內容
如何讓給文件夾設置密碼查看 發布:2025-01-31 22:49:07 瀏覽:2
配置動態路由協議配錯了怎麼改 發布:2025-01-31 22:49:07 瀏覽:77
掃行程碼為什麼需要支付密碼 發布:2025-01-31 22:47:08 瀏覽:738
什麼樣的配置能玩地平線4 發布:2025-01-31 22:44:05 瀏覽:241
python正則表達式符號 發布:2025-01-31 22:43:50 瀏覽:391
androidmime 發布:2025-01-31 22:34:44 瀏覽:782
ftp和http的中文含義是 發布:2025-01-31 22:33:48 瀏覽:402
sqlite3存儲圖片 發布:2025-01-31 22:27:14 瀏覽:162
sqlserverphp 發布:2025-01-31 22:22:55 瀏覽:877
曲馬多存儲 發布:2025-01-31 22:22:52 瀏覽:538