Static memory allocation is a process where memory for variables is allocated at compile time, and the allocated memory size remains fixed throughout the program's execution. This method is efficient in terms of speed and simplicity but lacks flexibility and can lead to wasted memory if the allocated size is not fully utilized.