chamada do sistema fork () e espaço de memória do processo

Cito "quando um processo cria um novo processo usando a chamada fork (), apenas os segmentos de memória compartilhada são compartilhados entre o processo pai e o processo filho recém-bifurcado. Cópias da pilha e da pilha são feitas para o processo recém-criado" de soluções "conceitos de sistema operacional" da Silberschatz.

Mas quando eu tentei este programa

#include  <stdio.h>
#include  <sys/types.h>

#define   MAX_COUNT  200

void  ChildProcess(void);                /* child process prototype  */
void  ParentProcess(void);               /* parent process prototype */

void  main(void)
{
         pid_t  pid;
         char * x=(char *)malloc(10);

         pid = fork();
         if (pid == 0) 
            ChildProcess();
         else 
            ParentProcess();
        printf("the address is %p\n",x);
}

void  ChildProcess(void)
{
          printf("   *** Child process  ***\n");
}

void  ParentProcess(void)
{
         printf("*** Parent*****\n");
}

o resultado é como:

*** Parent*****
the address is 0x1370010
   *** Child process  ***
the address is 0x1370010

pai e filho imprimindo o mesmo endereço que está na pilha.

alguém pode me explicar a contradição aqui. indique claramente quais são todas as coisas compartilhadas pelos pais e filhos no espaço de memória.

questionAnswers(6)

yourAnswerToTheQuestion