I've heard to use the heap/free store whenever possible when working with structs/classes and using the stack sparingly, but for a lot of open source C projects that use structs, they seem to use the stack. I don't really get it. Isn't that poor programming?