Minor nitpick: there is no allocation going on here - you’re simply reserving a fixed-size buffer on the stack (assuming the array is local to a function).
I would call that a stack allocation, but yes they are slightly different. In my mind its a feature that arrays allocated on the stack and heap can interchangeably be given as an argument to a function.
int a[10];
you allocate 10 integers and "a" is the pointer to the first one of them.
Arrays are just memory, just like what you get wen calling malloc, and memory is accessed using pointers in C.