Zeroing memory is certainly not free, and if you're doing some types of real-time applications, can have a significant cost.
http://randomascii.wordpress.com/2014/12/10/hidden-costs-of-...
http://randomascii.wordpress.com/2014/12/10/hidden-costs-of-...
If you really can't afford to use dynamic memory, don't. 'C' will cheerfully allow you to hog as much as you want outside the heap.
Sure. And your application should bear that cost and not necessarily every application written in C. Maybe there is a case for using a safer malloc implementation for your program?
> I don't know what sort of "real time applications" would require gambling on the initial state of memory.
This isn't really gambling. If you know you are going to initialize the memory with sane values immediately (and this is a common practice), it is a waste to do that initial zeroing.