매개변수 전달 기법
[실습] MyStrcpy() 함수 작성하기
// 포인터 연산자 활용
void MyStrcpyPointer(char* dst, int size, char* src) {
// src이 \\0일 때 까지
// size일 때 까지
int i = 0;
while( *src != '\\0' || i < size - 1 ) {
*dst = *src;
dst++;
src++;
i++;
}
}
// 배열의 인덱스 활용
void MyStrcpyArr(char* dst, int size, char* src) {
int i;
for (i = 0; src[i] != '\\0' && i < size - 1; i++) {
dst[i] = src[i];
}
dst[i] = '\\0';
}
int main() {
char src[12] = { "hello,.!" };
char dst[12] = { 0 };
MyStrcpyArr(dst, sizeof(dst), src);
puts(dst);
return 0;
}
Stack frame과 지역변수 주소 반환 문제
피호출 함수의 지역변수는 함수의 반환과 함께 소멸
소멸된 메모리 영역의 주소를 호출자 함수에게 반환하고 접근하는 것은 매우 심각한 오류


Call by reference와 메모리 동적 할당 이슈
