内存不能written,谁能告诉我为什么?
刚学C,做了一道题,一编译运行,我输完数字后,程序无法继续运行,提示如下
“0x77c14995”指令引用的“0x00000002”内存,该内存不能为“written”.
我以为是数据类型定义的不对,我改成int 后还是不行,总是提示内存不能为
written。谁能帮我分析一下,在这里先谢了!
----------------解决方案--------------------------------------------------------
呵呵,我找到了,问题出在scanf("%d",&a)中,我把&忘了,谁能给我讲讲存储方面的知识,简单说几句也行,在这里先谢了!!!!!!!
----------------解决方案--------------------------------------------------------
scanf("%d",&a) %d 是你输入的数类型 这里%d为整型 %F 为符点型
&a 给输入的A 开辟地址空间 忘记& 不能输入没有地址存放
----------------解决方案--------------------------------------------------------
我记我好像看过有的例题,不带&,是不是也有这种情况,是怎样的情况下才可以?
----------------解决方案--------------------------------------------------------
不用&,会把a当成地址,造成写入错误...因为有些地址是系统保留的,不允许用户操作....
----------------解决方案--------------------------------------------------------
字符串数组名,指针.
----------------解决方案--------------------------------------------------------
int a=(int)&a;
scanf("%d",a);