alloca f executes the computation
f, passing
as argument a pointer to a temporarily allocated block of memory
sufficient to hold values of type
a.
The memory is freed when
f terminates (either normally or via
an exception), so the pointer passed to
f must
not be
used after this.