Como escolher um endereço fixo para mapeamento de memória compartilhada

Gostaria de usar memória compartilhada entre vários processos e gostaria de continuar usando ponteiros brutos (e contêineres stl

Para esse propósito, estou usando a memória compartilhada mapeada em um endereço fixo:

segment = new boost::interprocess::managed_shared_memory(
    boost::interprocess::open_or_create,
    "MySegmentName",
    1048576, // alloc size
    (void *)0x400000000LL // fixed address
);

Qual é uma boa estratégia para escolher este endereço fixo? Por exemplo, devo usar apenas um número bastante alto para reduzir a chance de ficar sem espaço de heap?

questionAnswers(4)

yourAnswerToTheQuestion