How do functions like alloca allocate memory from the stack?