C指针写错误

Gre*_*rey 1 c pointers

 void fileNameProcess(char * inputName){
             int size =strlen(inputName);
             bool change=false;
             char * name=inputName;

             for(int i =0; i<size; i++){
                 char temp=* (name+i);
                 if(temp<0x10||temp>0x5b){
                     change=true;
                 }else if(0x19<temp<0x21){
                     change=true;
                 }else if(0x3a<temp<0x41){
                     change=true;
                 }
                 if(change){
                     //*(name+i)='_';
                     memset(name+i, '_', 1);
                     change=false;
                 }
             }

         }
Run Code Online (Sandbox Code Playgroud)

当我尝试在字符串(memeset)中设置一个字符时,它会中断,但我不明白为什么它不允许我这样做?为什么我可以允许访问读取但无法修改它?任何人都可以在记忆方面解释它.我想这是因为字符串被传递到函数中.但只要我知道记忆的位置,我可以把它设置好吗?

谢谢

char * filename= strdup("try1.mat");
    writter.locate(filename);
Run Code Online (Sandbox Code Playgroud)

在找到它时,将文件名指定给类memeber char*filepath

Dan*_*iel 6

这个:

if(1 < variable < 2)
Run Code Online (Sandbox Code Playgroud)

可能不会做你想要的.使用:

if(1 < variable && variable < 2)
Run Code Online (Sandbox Code Playgroud)

编辑 if(1 <variable <2)评估如下:

if( (1 < variable) < 2)
if( (true) < 2)
//given true is often* assigned a value of 1 this will always be true and
if( (false) < 2)
//false is always zero this will also be true
Run Code Online (Sandbox Code Playgroud)

*我不认为这是标准所要求的,所以不要依赖它.