[C] free()는 어떻게 배열의 크기를 알고 있을까?


[C] free()는 어떻게 배열의 크기를 알고 있을까?

사실 먼저 작성한 https://blog.naver.com/oh-mms/222110555954 이 글과 맥락은 같다.그래서 짧게 인용을 통해서 설명을 끝내고자 한다.내부적으로 하는 동작은 거의 동일하니, 조금 더 자세한 것을 원하면 위 링크의 글을 참고하면 된다.동적할당 시, 배열에서 데이터가 시작하는 앞부분에 여분의 메모리 공간을 먼저 할당한다.예를들어, 10바이트의 공간이 필요하면 14바이트를 할당해두고 앞의 4바이트는 이 동적 배열에 대한 정보를 저장하고 있어서 free 함수로 메모리를 해제하려할 때, 해당 동적 배열의 크기를 알 수 있는 것이다.<참조>1. https://stackoverflow.com/questions/1957099/how-do-free-and-malloc-work-in-c...



원문링크 : [C] free()는 어떻게 배열의 크기를 알고 있을까?