我刚刚学习共享内存到目前为止我所学到的一切都让我很困惑。可以告诉我共享内存如何处理数组?还有两个子进程如何访问所述数组?
答案 0 :(得分:1)
您可以使用shmat()方法访问共享内存,
shmat()syntex是
void *shmat(int shmid, const void *shmaddr, int shmflg);
这会返回一个指针。
如果要将其用作数组,则按如下所示进行分配
datatype array[size];
datatype* array = (datatype*)shmat(shmid, NULL, 0);
答案 1 :(得分:0)
共享内存区域只是虚拟内存中的一组连续字节,就像数组一样。因此,如果你有一个指向某个共享内存的指针,你可以像对待任何其他指针一样对待它。