모두CBT

다음 코드 사례에 해당하는 코딩 오류로 가장 적절한 것은?char* f… | [경찰간부후보생 소프트웨어공학] 23년 1회차 기출문제 상세 페이지

1[경찰간부후보생 소프트웨어공학] 23년 1회차
다음 코드 사례에 해당하는 코딩 오류로 가장 적절한 것은?
char* f(int n)
{
char *op;
if (n > 0)
op = (char*) malloc(size);
if (n == 1)
return NULL;
return(op);
}
1
NULL의 사용
2
버퍼 오버플로(Overflow)
3
중복된 프리(Free) 선언
4
메모리 누수(Leak)
해설

해당 코드의 오류는 메모리 누수이다.

n이 1이면 n > 0 조건으로 malloc이 먼저 실행되어 메모리가 할당되지만 곧바로 NULL을 반환하므로, 할당된 주소를 잃어 해제할 방법이 없는 메모리가 남는다.

  • NULL의 사용 오류는 NULL 포인터를 역참조하는 경우를 말하는데, 이 코드는 NULL을 반환할 뿐 역참조하지 않는다.
  • 버퍼 오버플로는 할당 크기를 넘어 쓰는 경우인데, 이 코드에는 버퍼에 쓰는 동작이 없다.
  • 중복된 프리는 같은 메모리를 두 번 해제하는 오류인데, 이 코드에는 free 호출 자체가 없다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[경찰간부후보생 소프트웨어공학] 23년 1회차 40문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요경찰간부후보생 소프트웨어공학 기출문제 암기장 전체 보기