프로그램을 작성할 당시에는 얼마나 많은 공간이 필요한지 알 수도 없고, 또 사용되지 않을지도 모르는 아주 큰 공간을 미리 할당해놓는 것은 비효율적일 것이다. C언어에서는 새로운 메모리 공간이 필요할 때마다 함수 malloc을 호출해서 필요한 양의 공간을 요구할 수 있다.
만일 공간을 사용할 수 있으면 요구한 크기의 메모리 영역에 대한 시작 주소에 대한 포인터를 반환한다. 요구한 메모리를 사용할 수 없으면 NULL 포인터가 반환된다.
나중에 메모리 영역이 더 이상 필요 없게 되면 free라는 또 다른 함수 호출을 통하여 그 영역을 시스템에 반환할 수 있다. 일단 메모리 영역이 반환되면 이것을 그 프로그램에서 다시 사용할 수 없다.
다음과 같이 하면 malloc 함수는 적절한 크기(sizeof(int))의 메모리 영역에 대한 첫 번째 주소를 가리키는 포인터를 돌려준다. 여기에 다음과 같은 타입 변환식을 추가해주자. malloc 함수가 메모리 영역의 첫 번째 주소를 가리키는 포인터를 돌려...
원문 링크 : 동적 메모리 할당(malloc)