A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 那个Mr_Z 中级黑马   /  2014-4-6 21:17  /  1089 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#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,怎么回事???

3 个回复

倒序浏览
你的addr指向了0x20000000这个地址,你确定这个地址是可读写的吗?
指针不能乱用,一般情况下是不能直接给指针这样子赋值的。你这情况可能是你指向的地址是不可读写的内存吧
回复 使用道具 举报
  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. //  函数类型不能少,您看看!
复制代码
回复 使用道具 举报
我把你的代码编译了一下 在我新搭建的环境(在windows下搭建的clang编译环境 这个地址链接http://bbs.itheima.com/forum.php ... peid%26typeid%3D353)是可以通过的。代码的书写上是符合语法要求的。
出现unhandled exception in **.exe:0xc0000005:access violation这种错误,
一是你的程序是运行中出错的话,把我的电脑的属性高级权限改大点就行。
要是,你现在编译都过不去,我估计是你的编译环境在用这块内存或者是开的其他程序再用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马