|
둘리.CSIEDA 님이 쓰신 글 :
: 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);
: : }
|