If I were to give you a simple response, I would then have to kill you. Just kidding. Well, short answer is, it depends. Long answer is, you could be doing craziness such as writing to memory that is not in the stack or even altering memory that is not accessable by your program. This is a classic example of "just because it compiles doesn't mean it should even work." For large pools of memory it is typically better to use malloc() (or whatever...) anyway. Plus, using static locals isn't necessarily the most thread safe way to go about life.