【问题标题】:Store and manipulate an array of objects in shared memory在共享内存中存储和操作对象数组
【发布时间】:2011-11-28 15:37:32
【问题描述】:

我原来的问题是here

我想将一个对象数组写入共享内存。假设我们知道共享内存的起始地址。我应该如何将对象数组存储到共享内存中并稍后操作数组(例如,访问数组中的一个特定对象,甚至访问该对象的字段)?是否必须将对象序列化到内存中并自己实现相关的访问方法,还是C++有内存管理机制来处理细节?

【问题讨论】:

  • 您能发布一些您尝试过的代码吗?看起来你对事情有些误解,但不看你的思路很难知道。
  • 你需要搜索一个关于如何使用共享内存的好教程,这样你可能会了解更多......
  • 共享内存只是确保您拥有一个可跨不同进程访问的公共内存块。一旦您共享了一块内存,它就可以像本地存储一样访问,那么它就没有什么特别之处了之后。
  • @Pubby 我还处于设计阶段,还没有开始编码。基本上我的问题归结为以下几点:当我们要求我们的系统创建一个对象数组时,它会分配一个它选择的连续内存块并以它自己的方式存储我们的对象。现在我想做同样的事情(即,具有访问我们对象的相同能力),除了这次我想将对象数组存储在我们选择的连续内存块中(例如,共享内存)。跨度>
  • @Terry LiYifeng:共享内存没有选择分配位置。通常您通过别名访问先前共享的内存。如果要将对象放置在以前分配的内存中,无论是共享的还是其他的,请搜索“placement new”

标签: c++ arrays object shared-memory


【解决方案1】:

这不是一个特别深思熟虑的答案,但我看不出你卡在哪里,因为你没有提供任何代码给我们提示。

这里有一个示例程序 - Sample Shared Memory Program - 有足够的评论让您了解如何实现您的要求。

所以,我会说仔细阅读并试一试:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-25
    • 2022-08-11
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 2013-09-08
    相关资源
    最近更新 更多