Why are the runtime heap used for dynamic memory allocation in C-style languages and the data structure both called “the heap”? Is there some relation?

Why are the runtime heap used for dynamic memory allocation in C-style languages and the data structure both called “the heap”? Is there some relation?