C - memoria compartida - matriz dinámica dentro de estructura compartida

Estoy tratando de compartir una estructura como esta
ejemplo:

typedef struct {
    int* a;
    int b;
    int c;
} ex;

Entre los procesos, el problema es que cuando inicializo 'a' con un malloc, se vuelve privado al montón de proceso que hace esto (o al menos creo que esto es lo que sucede). ¿Hay alguna forma de crear una memoria compartida (con shmget, shmat) con esta estructura que funcione?

EDIT: Estoy trabajando en Linux.
EDITAR: Tengo un proceso que inicializa el búfer de esta manera:

key_t key = ftok("gr", 'p');   
int mid = shmget(key, sizeof(ex), IPC_CREAT | 0666);    
ex* e = NULL;
status b_status = init(&e, 8); //init gives initial values to b c and allocate space for 'a' with a malloc
e = (ex*)shmat(mid, NULL, 0);

el otro proceso se adjunta a la memoria compartida de esta manera:

key_t key = ftok("gr", 'p');
int shmid = shmget(key, sizeof(ex), 0);
ex* e;
e = (ex*)shmat(shmid, NULL, 0);  

y luego obtener un elemento de a, en este caso que en la posición 1

int i = get_el(e, 1);

Respuestas a la pregunta(5)

Su respuesta a la pregunta