RIDER님의 설명이 맞는것 같네요. 언어적으로나 컴파일된 최종 기계어나 str1[x] = 'x'; 이 문장에서는 문제가 없고 str1이 가리키는 메모리가 constant영역인 것이 문제네요. TEXT, DATA, BSS, STACK, HEAP말고, constant 세그먼트를 따로 두고 페이지 속성을 read-only로 바꾸어 버리는 것 같네요. str1 = str2; 를 추가하니까 아무런 문제가 없군요. 뒤의 sizeof 부분은 사족인것 같군요. 문제와는 상관없네요.