Это зависит от контекста. Полностью отдельные процессы в большинстве случаев не разделяют одну и ту же память, но в некоторых случаях дочерние процессы будут использовать то же пространство памяти, что и родительский, например, когда вы используете fork в Unix. В более старой версии Windows (95,98, ME) есть область общей памяти, которая используется всеми процессами, но в основном это просто пространство для системных DLL, а не для данных.
Как правило, потоки совместно используют данные кучи, но вы должны быть осторожны при освобождении памяти в одном потоке, который был выделен в другом потоке, поскольку некоторые менеджеры памяти зависят от стека.