free가 되는건지 궁금합니다.

런맨의 이미지

static void imageProcess(const void* p)
{
  unsigned char* src = (unsigned char*)p;
  unsigned char* dst = malloc(width*height*3*sizeof(char));
 
  // convert from YUV422 to RGB888
  YUV422toRGB888(width,height,src,dst);
 
  // write jpeg
  jpegWrite(dst);
}

이런 함수가 있는데 변수 선언할때 malloc하면 *dst를 free안해줘도

함수가 종료 되면 저절로 free되는건가요? 따로 free해주는 곳이 없던데

갑자기 헷갈리네요. 알려주시면 감사하겠습니다.

klara의 이미지

이걸론 알 수 없습니다. 포인터를 넘겨주고 있는 함수들이 메모리 관리를 하는 걸수도 있습니다.
따로 메모리 관리해주는게 아니라면 '함수가 종료되면 자동으로 free'같은건 존재하지 않습니다.