As a C programmer I was told that I should use as little memory as possible. Unfortunately, that advise didn't come along with the fact that I should make a trade-off between software complexity, computing speed and memory usage: more malloc()s means more instructions to be executed, and therefore, the computing speed suffers and the software complexity increases (e.g., how about if malloc() fails?), and vice versa. I was aware about the trade-off but had not got the paradigm shift. Now I do get the shift.