|
char *aa 는 보내는 char *a 와 다른 메모리 입니다.
그 위치는 같으나 a 와 aa 자체는 다른곳이죠. 두게 모두 같은곳을 지정하고 있는것 뿐이죠.
그러므로 aa 가 바뀐다 해도 호출하는쪽 a 는 바뀌지 않죠..
return aa; 하셔서 포인터를 return 해서 사용하시거나
아니면
char **aa 로 받아서 (*aa) 를 변경해주시면 되겠죠.
참고적으로
그냥 함수 사용하지 마시고 한자리 뒤로 이동시키려면
a++;
하시면 같은 결과가 됩니다.
---------------------------------------------------------------
나무2 님이 쓰신 글 :
: char pointer 문자열중 첫번째 글자만 잘를려고 하는데.. 디버그 해보면 함수 안에서는 포이터가 이동 되어있습니다.
: 하지만 함수 밖을 나오면 그대로 위치가 0번째를 가리키고 있는데.. 이게.. 왜이런가요?
: 전 함수를 타고 나오면 1번째를 가리키도록 하고 싶은데..어떻게 해야 할까요?
: 자문을 구합니다. ㅜㅜ
:
:
: void testPointer(char * aa)
: {
: aa = &(aa[1]); //맨앞의 한자리를 자를려고, 포인터 위치를 1로 이동.
: }
:
: void __fastcall TFFtp::Button2Click(TObject *Sender)
: {
: char * a ;
: a="/abc/defg/hijk";
:
: testPointer(a);
: }
|