In C, the alloca keyword allocates space on this thing, which is thus automatically freed when the function returns to its caller. Every function call reserves a frame, or activation record, on this thing, which is where the function's local variables are stored unless they are allocated using malloc, in which case they are stored on the heap. Big O of n space is required on it by recursive functions  with n the depth of recursive calls  but that can be reduced to big O of one by implementing tail recursion, thus avoiding a common (*) "overflow". The first-taught way to make depth-first search non-recursive is to use this data structure. Reverse Polish notation is conceptualized using it. 
In C, the alloca keyword allocates space on this thing, which is thus automatically freed when the function returns to its caller. Every function call reserves a frame, or activation record, on this thing, which is where the function's local variables are stored unless they are allocated using malloc, in which case they are stored on the heap. Big O of n space is required on it by recursive functions  with n the depth of recursive calls  but that can be reduced to big O of one by implementing tail recursion, thus avoiding a common (*) "overflow". The first-taught way to make depth-first search non-recursive is to use this data structure. Reverse Polish notation is conceptualized using it. Insertion and deletion in it is called push and pop, respectively. For 10 points, name this last-in first-out data structure that contrasts with the first-in first-out queue.
In C, the alloca keyword allocates space on this thing, which is thus automatically freed when the function returns to its caller.
stack