CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): control (푸무클)
날 짜 (Date): 2003년 3월  7일 금요일 오후 12시 02분 44초
제 목(Title): [Q] pointer와 문자열에 관한 설명좀 ..


제목이 짧아서 반말투가 되었었습니다.

코딩하다가 문제가 생겼는데요.
전에는 char a[]="aaa"; 이런식으로 코딩을 해서 문제가 없었습니다.
그런데 char *a="aaa"; 하면서 선언을 한경우는 값을 삽입을 못하고 있습니다.
첫번째 글자를 b로 바꾸는 예를 만들었는데요..

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char *a="aaa";

    *a='b';

    return(0);
}

이걸 컴팔해서 돌리면 어김없이 떰프가 나옵니다. -_-;

물론 *a 대신에 a[]를 사용하면 됩니다.

두개의 차이가 어떤건지 상세하게 설명을 부탁드립니다.
여러사람이 다퉈서 이야기를 해봤는데, 결론이 안나고 있습니다.

"aaa"가 불안한 영역이다. "aaa"가 constant라 못바꾼다. 포인터를 잘못
사용하고 있다 등등... 결론없이 싸우고 있습니다.

좋은 조언 부탁드립니다.

그리고 위의 예의 "aaa"를 "aba"로 바꾸려면 어떻게 해야 할지도 좀 
알려주세요. (C를 10년을 넘게 쓰면서도 이런걸 가지고 고민한다는게
우습기도 하고 부끄럽기도 합니다. T.T)



[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.