Memoria dinámica en memoria compartida en C
Publicado por alex3193 (1 intervención) el 19/04/2014 16:18:09
Hola,
Necesito crear un bloque de memoria compartida con la siguiente estructura:
Pero necesito reservar memoria para el array de int (plazas), el cual no lo puedo hacer estático. Para crear la zona de memoria realizo lo siguiente:
Pero no se como especificar que sizeof(int) * numPlazas es para el campo plazas.
He probado a hacer
Pero no se crea en memoria compartida.
Gracias de antemano.
Necesito crear un bloque de memoria compartida con la siguiente estructura:
1
2
3
4
5
6
typedef struct {
int semid;
int *plazas;
int coches;
int pidDesapar;
}parking;
Pero necesito reservar memoria para el array de int (plazas), el cual no lo puedo hacer estático. Para crear la zona de memoria realizo lo siguiente:
1
2
id_zone = shmget(key, sizeof(parking) + (sizeof(int) * numPlazas), IPC_CREAT | IPC_EXCL | SHM_R | SHM_W);
buffer = shmat(id_zone, (char *)0, 0);
Pero no se como especificar que sizeof(int) * numPlazas es para el campo plazas.
He probado a hacer
1
buffer->plazas = (int *)malloc(sizeof(int) * numPlazas);
Pero no se crea en memoria compartida.
Gracias de antemano.
Valora esta pregunta


0