我在 OSx 上使用 C 并使用 shmget() 来获取要在两个不同程序之间使用的内存 具有 2 个 int 值的结构 这是否意味着如果我想要 27 的大小,那么它必须是 54,这将如何与用于结构的指针一起工作,或者任何帮助将不胜感激
最佳答案
不,您需要在结构上使用 sizeof。您无法保证实现将如何填充结构内的值,因此您不能假设它们的大小。此外,如果后来由于向结构添加成员而导致大小发生变化,内存分配仍然可以正常工作。
然后使用 sizeof 中的值乘以您打算在共享内存区域中使用的结构实例的数量。
关于c - 在 c 中使用 Shmget() 和结构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523749/