필수실습문제 MyStrcpy() 함수 작성하기 에서 질문있습니다.
필수실습문제 MyStrcpy() 함수 작성하기 에서
void MyStrcpy(char* pszDst, int nSize, char* pszSrc) {
size_t nLenSrc = 0;
nLenSrc = strlen(pszSrc);
for (int i = 0; i < nLenSrc; ++i) pszDst[i] = pszSrc[i];
}로 함수를 정의하셨는데 이럴경우에 매개변수로 들어간 nSize는 함수에서 어떤 의미가 있는건가요...?
답변 1
0
코드에는 반영되지 않았으나 예외처리를 하기 위해서 입니다. pszDst가 가리키는 메모리 영역에서 가용한 바이트 단위 길이가 nSize 입니다. 만일 pszSrc의 길이가 nSize보다 크다면 pszDst가 가리키는 메모리 범위를 넘어선 쓰기가 발생합니다.
포인터의 가장 큰 문제는 가리키는 대상에 대한 정보가 부족하다는 것입니다. 특히 가용 메모리의 크기를 알 수 없다는 것이 문제입니다. 이러한 문제를 해결하려면 기본적으로 대상 메모리의 가용 크기를 별도로 받는 것 외에 대안이 없습니다. 참고하시기 바랍니다. :)
scanf("%d\n") 의미
0
20
1
주소 연산자(&) 간접 지정자(*) 반대 개념
0
33
1
Virtual Memory, Memory, Memory mapping tables
0
51
1
샘플코드 출력 오류 발생 질문드립니다
0
63
2
값의 교환에 사용되는 변수의 위치.
0
88
2
메모리 비교에 관한 질문
0
81
2
문자열 Null
0
63
1
C, C++
0
88
2
문자열 입출력 코드 에러
0
60
2
선생님! 120화 2분 50초 질문입니다.
0
67
1
caller 가 메모리 할당 해제를 할 때의 문제점 질문
0
64
2
단축키 맞는지 여부 문의드립니다.
0
60
2
문자열을 사용하는 이중 포인터에 대하여 질문합니다
0
66
1
char 포인터 변수의 크기에 대하여 제가 이해한 것이 맞을까요
0
78
2
용어 설명 필요
0
57
2
stdin, stdout
0
71
2
필수 실습 (최댓값을 반환하는 함수)
0
93
2
아......ㅠㅠ
0
100
2
버퍼 내 엔터
0
72
1
2진수 뺄셈에서 carry-out
0
112
2
union 식별자는 실무에서 보통 어디에서 사용하나요?
0
80
2
필수실습문제 공부법 (진도 vs 복습)
0
104
2
예제파일 다운로드
0
79
2
Visial Studio Code 를 설치해서 사용해도 수업을 따라가는데 지장이 있나요?
0
120
3





