黑马程序员技术交流社区

标题: 关于C语言指针问题 [打印本页]

作者: 那个Mr_Z    时间: 2014-4-6 21:17
标题: 关于C语言指针问题
#include<stdio.h>
#define vector   (int *)0x20000000
main()
{
        int i;
        int *addr=NULL;
        addr=vector;
        for(i=0;i<10;i++)
        {
                *addr=0x11;
                addr++;
        }
}
编译的时候出现错误:unhandled exception in **.exe:0xc0000005:access violation,怎么回事???

作者: 脸皮猴    时间: 2014-4-6 21:56
你的addr指向了0x20000000这个地址,你确定这个地址是可读写的吗?
指针不能乱用,一般情况下是不能直接给指针这样子赋值的。你这情况可能是你指向的地址是不可读写的内存吧
作者: Hi围城    时间: 2014-4-6 21:58
  1. #include<stdio.h>
  2. #define vector   (int *)0x20000000
  3. //main() 函数类型必不可少
  4. int main()
  5. {
  6.     int i;
  7.     int *addr=NULL;
  8.     addr=vector;
  9.     for(i=0;i<10;i++)
  10.     {
  11.         *addr=0x11;
  12.         addr++;
  13.     }
  14. }
  15. //  函数类型不能少,您看看!
复制代码

作者: Freedam    时间: 2014-4-6 23:03
我把你的代码编译了一下 在我新搭建的环境(在windows下搭建的clang编译环境 这个地址链接http://bbs.itheima.com/forum.php ... peid%26typeid%3D353)是可以通过的。代码的书写上是符合语法要求的。
出现unhandled exception in **.exe:0xc0000005:access violation这种错误,
一是你的程序是运行中出错的话,把我的电脑的属性高级权限改大点就行。
要是,你现在编译都过不去,我估计是你的编译环境在用这块内存或者是开的其他程序再用。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2