alloca() 'frees' memory when the function returns, not when we exit