在 QSharedMemory 中存储数据

Storing data in QSharedMemory

我正在尝试在共享内存中存储四个 'double' 变量和一个 'int' 变量。

QSharedMemory::data() 提供了一个指向用 create(int size) 预留的内存的指针。我的问题是:我怎样才能适当地将数据加入共享内存并将其深度复制到共享内存中,以便我可以在另一个程序上访问其中的任何元素 read/write?

我看到的唯一类似的事情是将值放在 QString 中。这样对吗?

谢谢。

大致如下:

struct SharedData {
  double fourDoubles[4];
  int andAnInt;
};

QSharedMemory shared_mem;
shared_mem.create(sizeof(SharedData));
SharedData* p = static_cast<SharedData*>(shared_mem.data());
p->fourDoubles[0] = 1.0;
p->andAnInt = 42;