No, stack allocation does not call malloc/free. The entire stack space is allocated at the start of your program. On entry to each function the stack pointer is advanced sufficiently to allow space on the stack for a "stack frame" which will be where your stack allocated variables reside.