mig*_*rso 3 c ipc shared-memory
我想使用IPC将共享内存分配为2D阵列.我尝试了以下方法:
id_shmem = shmget(ipc_key, sizeof(int)*rows*columns, IPC_CREAT|0666);
matrix = (int **)shmat(id_shmem, 0, 0);
Run Code Online (Sandbox Code Playgroud)
问题是,每当我尝试在矩阵中写入内容时,我都会遇到段错误.
el.*_*ado 14
int**不是2D数组,而是指针数组.您不应将指针存储在共享内存中,因为共享内存段可能在不同进程中的不同地址分配.尝试使用简单,平坦的1D阵列,它将使用一些索引魔法"模拟"2D阵列,即.
x,y -> y*width+x
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2652 次 |
| 最近记录: |