CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): Convex (4ever 0~)
날 짜 (Date): 2002년 5월  8일 수요일 오후 09시 55분 21초
제 목(Title): string 함수 질문


strcpy, strcmp, strcat 등을 실행하는 중에 의문이 있습니다.

어떤 책에 나온대로 하면 

#include <stdio.h>
#include <string.h>

void main()
{
        char *p = "Orange                     ";
        char *q = "Apple ";
        printf("%d\n",strcmp (p,q));
        strcpy(p,  q);
        strncat(p, "Computer System", 8);
        printf("%s\n", p);
}

이렇게 하면 된다는데 막상 돌려보면 segmentation fault 가 나옵니다.

반면에 선언할 때 *p 를 p[] 로  고치면 잘 돌아갑니다.

*q 는 그대로 두어도 잘 돌아갑니다. 
*p 로 선언하면 그 스트링 크기를 아무리 많이해도 segmentation fault error가 
납니다.

참고로 RedHat7.2의 gcc를 사용했습니다.
gcc의 에러인지, 책이 잘못 설명된 것인지 고수 여러분들 좀 가르쳐 주세요.


--,--`-<@  매일 그대와 아침햇살 받으며 매일 그대와 눈을 뜨고파.. 잠이 들고파..
Till the rivers flow up stream       |        Love is real      \|||/   @@@
Till lovers cease to dream           |        Love is touch    @|~j~|@ @^j^@
Till then, I'm yours, be mine        |        Love is free      | ~ | @@ ~ @@ 
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.