본문 바로가기

Education

[부스트 코딩 뉴비 챌린지 2020] week5_Q&A : 메모리 해제와 메모리 할당

반응형

Q.

메모리를 해제하는 함수인 free와 메모리를 초기화 하는 함수인 memset가 있습니다.

먼저 메모리를 해제한다는 것과 메모리를 초기화 한다는 것의 차이가 무엇인지 궁금합니다.

만약 둘의 의미가 비슷하다면 free함수와 memset함수의 차이는 무엇인가요?

A.

free memset은 의미가 완전히 다릅니다.

malloc으로 할당된 메모리를 memset을 이용하여 초기화하면, 할당된 메모리에 담긴 값이 모두 특정한 값으로 바뀌게 됩니다. 반면, malloc으로 할당된 메모리를 free를 이용하여 해제하면, 그 메모리는 쓰레기통에 들어간다고 생각하시면 될 것 같습니다. , 다시는 그 메모리에 의도적으로 접근할 수 없다는 뜻입니다. 우연히 접근할 수는 있겠지만 일반적으로는 해제된 메모리는 다시 이용할 수 없으며, 나중에 다른 malloc으로 재활용됩니다.

반응형