在VC++里的下面语句有什么问题吗:
char * p=NULL;
char a='s';
*p=a;
为什么编译通过了,在执行到*p=a语句的时候总是提示出错呢?
Access Violation
(写的是win32程序)
char * p=NULL;
char a='s';
*p=a;
为什么编译通过了,在执行到*p=a语句的时候总是提示出错呢?
Access Violation
(写的是win32程序)
调试欢乐多
因为是NULL,所以没有为它*P分配内存,如果你硬要将值给他,就没有空间了。楼上的p=&a;是很好的解决方法……
char * p=NULL; //这一句初始化非常好,防止“野指针”
char a='s';
p = new char; //加一句话,为指针分配地址
*p=a;
......
delete p; //释放地址
p = NULL; //防止“野指针”
paul2002()最简单