一个问题现象求证
今天回顾一下以前学的C++发现:
char *p;
*p= 'C ';
========================
我的理解是该代码应该出错,因为p现在指向的内存地址是未知的所以写入数据时可能写入到未授权或覆盖有用的内存地址中去。可是现在的问题是无论如何调试都没有错误,非要改成char *p=NULL附值后才会看见可爱的指针错误。问题现在是是不是我的物理内存太大了(1G)导致OS虚拟内存实际映射到的物理内存总是可用从而导致正确的假像?
[解决办法]
这个可能和编译器相关,
char *p; //只是定义,一般不初始化,但是有的编译器会进行一个初始化
如果这个初始化的地址值是操作安全的,
那么,
*p= 'C '; 就永远不会出错 ~~
楼主可以试试换一个编译器 ~~