ctrl = (mem *)shmat(shmemid, 0, 0);
这仅将有效内存分配给
ctrl指针,而不分配给
ctrl->mat或
ctrl->IDs_row。
您可能想要:
mem *ctrl;shmemid = shmget(KEY, sizeof(ctrl), IPC_CREAT | 0666);//allocate memory for the structurectrl = (mem *)shmat(shmemid, 0, 0);//allocate memory for the int*shmemid = shmget(KEY,((i-1)*num_cons))*sizeof(int), IPC_CREAT | 0666);ctrl->mat = (int*)shmat(shmemid, 0, 0);//allocate memory for the char*shmemid = shmget(KEY,i*26*sizeof(char), IPC_CREAT | 0666);ctrl->IDs_row = (char*)shmat(shmemid,0,0);



