Если ваша система Linux, вы получите больше воспроизводимых адресов, отключив рандомизацию адресного пространства. Вы можете достичь этого с помощью этой команды (для запуска от имени пользователя root)
echo 0 > /proc/sys/kernel/randomize_va_space
(но рандомизация адресного пространства - это функция, которая может повысить безопасность вашей системы)
Однако это не гарантирует, что родительский и дочерний процессы будут иметь одинаковое поведение (потому что между ними есть небольшая разница: возвращение fork()
и их pid). И вы не можете быть уверены, что их схема распределения достаточно схожа. Представьте, что после разветвления (разветвленная) программа выполняет что-то вроде
char *p = malloc (8192*(3 + (getpid() % 10) + time(NULL) % 100));
тогда вы должны ожидать, что malloc запросит совершенно разные размеры в родительском и дочернем элементах с разными возвращаемыми адресами malloc. Итак, этот надуманный пример показывает, что ваше требование нереально.