using memset

econjack:
While redundant in most cases, I think not assuming the compiler performs certain initializations has saved me a lot of grief over the years.

Agreed! It's always best to be explicit. Never make assumptions about what the compiler will or will not do, and those assumptions will never come back to bite you. I always explicitly initialize my data. All it takes to really mess things up is to move some code around and change its scope, and not realize that it also changes the behavior (like moving an array declaration from global to local.)

Initialization is so fast, that it's a false optimization to skip it because you think it's already been done.