int main(void){
char * strPtr="Hello World";
printf("\n%s", strPtr);
*(strPtr+2)='Z';
printf("\n%s", strPtr);
getch();
}
나는 오류를 제공하지 않습니다배열의 두 번째 요소를 변경할 수없는 이유는 무엇입니까?
*(strPtr+2)='Z';
컴파일러에 의해 char 배열의 두번째 요소를 변경하고자하지만 난 실행할 때, 코드는 컴퓨터에 달려 있습니다. 어디서 실수입니까?
그것은 심지어와 그러나 좋네요 - 일부 컴파일러는 암시 적 const 선언을 경고 플래그로 표시 할 필요가 없음을 알지 못합니다. – LostBoy
플래그가없는 경우에도 g ++을 사용하면 경고 메시지가 나타납니다. – Alexis
GCC 4.4.5에서이 문제점을 기쁘게 무시합니다. - 벽 ...따라서 "some compilers";) – LostBoy