The question is kind of wrong.
In a typical OS, there exists the concepts of virtual memory and physical memory.
Physical memory exists typically in 4kb blocks, virtual memory likewise.
Each process has virtual memory - to each process the OS presents what appears to be the fully addressable memory range. So on a 32 bit machine, each process 'thinks' it has 4 GB of contiguous memory.
In reality, the OS, behind the scenes, is busy mapping virtual memory allocations onto real blocks of physical memory. So a, say, 400kb virtual memory allocation, is mapped onto 100 physical blocks. Those physical blocks do not need to be contigious (and almost never are - nothing stops it from happening, but on a machine doing any kind of work, it's highly improbable) but the virtual memory allocation does need to be contiguous.
So you can still run into virtual memory fragmentation. Here, a process requests a block of memory and there isn't, in that particular processes virtual memory map, a block of contiguous virtual memory such that the request can be satisfied.
That problem is the problem you're thinking of.