在VC++里的下面语句有什么问题吗:
     char * p=NULL;
    char a='s';
   *p=a;
为什么编译通过了,在执行到*p=a语句的时候总是提示出错呢?
  Access Violation 
 (写的是win32程序)

解决方案 »

  1.   

    可能是你做这句时:char *p=NULL;
    因为是NULL,所以没有为它*P分配内存,如果你硬要将值给他,就没有空间了。楼上的p=&a;是很好的解决方法……
      

  2.   

    该指针没有初始化,指针没有指向一个合理的地址
       char * p=NULL; //这一句初始化非常好,防止“野指针”
       char a='s';
       p = new char; //加一句话,为指针分配地址
       *p=a;
       ......
       delete p; //释放地址
       p = NULL; //防止“野指针”
      

  3.   

    同意CodePage(代码页) 的做法。
    paul2002()最简单
      

  4.   

    这样的错误都犯,你把A写到NULL的地址上,不错才怪!