我正在使用==operator 检查字符串之间的直接比较.当两个字符串都是正确比较的字符指针时.我很快意识到它发生了编译器默认情况下为两个char指针变量分配相同的地址,因为它们保持相同的值.
#include<stdio.h>
void update(char *str2){
*(str2+2)='O';
}
int main(){
char *str1="Sudhanshu";
char *str2="Sudhanshu";
printf(" %s , %s ",str1,str2);
update(str2);
printf(" %s , %s ",str1,str2);
if(str1==str2){
printf("True\n");
}else
printf("False\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
地址str1和str2是一样的.所以我想检查更新一个指针是否实际影响其他指针.
但是,我遇到了分段错误.为什么我会遇到段故障?