如何将结构分配给共享内存i C

How to allocate a struct to shared memory i c++?

本文关键字:共享 内存 分配 结构      更新时间:2023-10-16

我对如何与C中的共享内存一起工作有一个模糊的想法,并且我正在尝试在C 程序中使用相同的方法。我想分享一个结构:

typedef struct 
{
    string passw;
    string encoded;
    string tries;
    char steps;
}gameInfo;
gameInfo *gI;

这就是我试图做到的:

int memory;
memory = shmget(IPC_PRIVATE, sizeof(gameInfo)*max_players, IPC_CREAT | 0600);
if(memory==-1)
    {printf("Shared memory error");}

(稍后(

*gI = shmat(memory,NULL,0);

我会得到"错误:operand类型是'gameInfo'和'void*'(错误。最快的解决方案是什么?

即使您设法了解如何使用位置new,也将无法使用SHM_OverView(7(的POSIX共享内存在Linux上运行示例。

因为STD :: String不是POD类,并且包含 Internal 未指定角色和行为的指针。