私はこのコードを受け取りましたが、その動作が未定義である理由がよくわかりません。私の推測では、2 つの文字列のメモリの場所と、if 条件での場所の比較に関係があると思います。
int main(void) {
char *str1 = "xyz";
char *str2 = "xyz";
if (str1 == str2) {
printf("Same!\n");
} else {
printf("Not Same!\n");
}
return 0;
}