메모리 동적 할당 또는 동적 메모리 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 사용이 끝나면 반납하여 다음에 요구가 오면 재 할당할 수 있다. 이것은 프로그램이 실행되기 전 컴파일 단계에서 미리 프로그램이 사용할 메모리 크기를 계산하여 변수의 배치가 이루어지는 정적 메모리 할당과 대조적이다. 동적으로 할당된 메모리 공간은 프로그래머가 명시적으로 해제하거나 쓰레기 수집이 일어나기 전 까지 그대로 유지된다. C/C++에서는 동적 할당하면 해제하기 전까지는 계속 유지된다. 이 동작 할당은 프로세서의 힙영역에서 할당하므로 프로세서가 종료되면 운영 체제에 메모리 리소스가 반납되므로 해제된다. 그러나 프로세서가 계속 실행될 때에는 동적할당 된 영역은 유지되므로 정해진 힙 영역의 크기를 넘는 할당 요구를 하면 할당되지 않는다.