What is contiguous memory allocation with memory protection?

Memory allocation: When a program asks for memory and gets it.

Contiguous allocation: When the memory is in one big block, for example memory addresses 1000-2000, as opposed to "fragmented allocation" where the memory comes as several smaller blocks in different places, for example memory addresses 1000-1050, 2050-2125, ...

Memory protection: Normally some sort of limitation on who can write to which memory, to reduce the risk that a bug or a virus can damage data or bring down the computer.