
89
text
=
malloc(size);
readFileContent("my
-
file.txt", text, size);
caesar(text, strnlen(text, size));
printf("Encrypted text: %s\n", text);
/*
여기에서
메모리를
해제하지
않는다
. */
}
}
메모리를 할당하지만 할당 해제를 위한
free
는 호출하지 않는다. 대신 메모리
를 가리키는 포인터가 범위를 벗어나게 하여 메모리 누수를 일으킨다. 하지만
곧바로 프로그램이 종료되고 운영 체제가 메모리를 클린업해주기 때문에 큰
문제가 되지 않는다.
이러한 접근 방식은 다소 세련되지 않아 보이지만, 어떤 경우에는 괜찮은 방
법이다. 프로그램 실행 시간 내내 메모리를 사용하거나 프로그램 실행 시간이
짧고, 코드가 진화하지 않고, 다른 곳에서 재사용되지 않을 것이라고 확신한다
면 메모리 클린업에 신경쓰지 않아도 된다. 이는 개발자의 일을 아주 단순하게
만들어주는 해결책이 될 것이다. 하지만 여러분의 프로그램이 진화하는지 혹
은 실행 시간이 더 길어지는지 유심히 살펴야 할 것이다. 그럴 경우에는 아예
다른 접근 방식을 찾아야 한다.
바로 이어서 이 내용을 다룰 것이다. 두 개 이상의 파일을 암호화하려고 하
거나 현재 디렉터리에 있는 모든 파일을 암호화한다고 ...