char* pNumEng = "hw_num_10_392_80.mqdf";
char* pos = strrchr(pNumEng,'.');
*pos = 0;//总是报错,请问为什么?access violation

解决方案 »

  1.   

    pNumEng 指向的是常量字符串,不能修改的。改为这样试试:char pNumEng[] = "hw_num_10_392_80.mqdf"; 
      

  2.   

    因为pos是常亮指针,pos的数据是存储在静态存储区的。在debug模式下,编译器会监测这种情况,并认为修改常亮是个错误。不过你改成release它就不检查了
      

  3.   

    常量指针的定义不是应该诸如const int* pNumEng这样吗?可是我并没有这样定义啊。
      

  4.   

    char* pNumEng = "hw_num_10_392_80.mqdf"; 
    pNumEng所指一般编入只读段,写入时会非法访问