[문자열] 강의 부분에서 StrCpy함수 포인터로 구현 하는 부분 질문 있습니다.
218
작성한 질문수 9
글로 질문은 처음이라 두서 없을 수 있다는 부분 양해 부탁 드립니다.
char* StrCpy(char dest, char src) 함수에서
char * ret = dest; 선언을 통해 기존 원본 위치값을 저장해 주는것은 알겠는데,
while문이 다 돌고 나서 'dest'의 값을 확인해 보면 문자열이 없는 것을 데이터를 확인 하여 알았습니다.
그 이유가 'dest++'을 통해 포인터의 시작 위치 값을 변경해 주어서 값이 없는 주소 부분을 가르키기 때문에 'dest'의 데이터가 아무것도 없는 것이 맞을까요?
그렇기 때문에 원본 데이터에는 정상적으로 들어있고,
함수내에서 'dest'의 주소 시작점이 뒤로 밀려나 데이터가 없다고 판단해도 되는지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
yoodud님의 질문과 관련하여, char* StrCpy(char* dest, const char* src) 함수 구현에 대해 궁금하신 부분이 있으신 것으로 이해됩니다. 특히, 포인터를 이용하여 문자열을 복사하는 과정에서 dest++로 인해 dest의 시작 위치 값이 변경되어, 함수 완료 후 dest가 가리키는 위치가 문자열이 저장된 곳이 아닌 다음 위치를 가리키게 되는 부분에 대한 이해가 필요하신 것 같습니다.
이와 유사한 상황에 대해 설명한 기존의 질문&답변 링크를 찾았습니다. 이 링크는 strcpy() 구현과 관련하여 dest++ 후의 dest 포인터 관리에 대한 설명을 담고 있습니다.
- strcpy() 구현 관련 질문: 이 질문에서는 strcpy 함수를 구현하면서
dest++를 통해dest포인터가 가리키는 위치가 변경되는 부분을 설명하고 있습니다.dest포인터가 문자열을 복사한 후의 위치를 가리키게 되므로, 함수가 반환할 때 원본 문자열의 시작 위치를 가리키는ret포인터를 반환하는 방법에 대해 설명합니다.
위 링크에서는 dest 포인터를 증가시키면서 문자열을 복사하는 과정 후 dest가 가리키는 위치가 변경되어 원본의 시작 위치를 잃어버리는 현상과 이를 보정하기 위해 처음에 dest의 시작 위치를 다른 포인터 변수에 저장하는 방식을 설명하고 있습니다. 이는 yoodud님의 질문에 대한 궁금증을 해소하는 데 도움이 될 것 입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
문제집은 없나요 수업을 어떻게 들어야 할지 모르겠어요
0
106
2
동적배열 Vector의 push_back 함수에서 조건문 질문
0
74
1
디버깅할때 메모리보는법 단축키가 뭐죠??
0
89
1
113-충돌처리 강의에서 22:26 부근의 SetPos()를 적용해도 충돌되지 않고 뚫고 지나가게 됩니다.
0
87
1
SaveFile에서 크래시 발생하는 분들 체크해보세요
1
70
1
수업자료 확인 부탁드립니다.
0
105
3
explicit을 붙였을 때 빨간줄이 뜨는 이유가 맞는지 궁금합니다.
0
100
0
22강에서 구조체와 포인터로 설명해주셨는데 패딩의 경우는 어떻게 되나요?
0
88
2
리소스 매니저 강의 18분 부근
0
89
1
[Service강의] owner -> shared_ptr
0
80
2
C#에서 생성자 관련 질문
0
83
2
특정 조건에서만 함수를 반환할 때
0
90
2
스택 empty
0
105
2
섹션4 배열실습 질문입니다.
0
132
1
섹션3 '파일분할' 강의 질문입니다.
0
99
1
Defines.h의 DECLARE_SINGLE관련 질문입니다.
0
110
1
세션8 우선순위 큐 pop함수의 Predicate 적용 관련 질문이 있습니다.
0
180
3
섹션9 함수 포인터 관련 질문입니다.
0
137
1
exercise_A 번 문제 해결방법에 대한 질문.
0
150
1
[강의명: virtual 소멸자] 자식 클래스의 소멸자에도 virtual 을 붙이시는 이유가 궁금합니다
0
198
2
Scene과 SceneManager 강의 수강 중 키보드 입력 오류
0
146
1
Window API 강의 수강 중 LARGE_INTEGER 타입 변환 오류
0
198
3
섹션15 스마트 포인터 20:00 질문이요!
0
127
1
55강 수업자료 빌드를 하면 이상합니다.
0
132
1





