当前位置:首页 » 编程语言 » 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