I cant figure, why project compile successfully with heap_2.c but not whith heap_1.c. IAR give "Fatal Error[e72]: Segment HEAP must be defined in a segment definition option (-Z, -b or -P)". (Heap_1.c should be ok for IAR, it use compilers own malloc -function for memory allocation).
Linker Config should be correct. Error generate only when i compile project with heap_1.c.
When you link in malloc the linker will attempt to find the data segment called HEAP (or some other similar name). This section will be needed within the linker script. I should take a look at the IAR manual for the malloc function, or heap description.