C 写入到映射内存中的某个位置后,在打印出来时,它';他不再写了

C 写入到映射内存中的某个位置后,在打印出来时,它';他不再写了,c,mmap,C,Mmap,我正在尝试将多维数组中的一组整数映射到mmap内存中。我知道计算是有效的,因为我打印了多维数组,它打印了正确的值。我比较了double for循环中的值,打印多维数组的值和赋值后在mmapped内存中的值,它们都对应相同的值 当我离开for循环并打印出mmapped内存中的内容时,只有第一个和最后一个值正确打印。相反,当我直接打印多维数组时,它会打印正确的值。我向映射的内存中写入的内容是否有误?我不这么认为 199 args->shmem3[r+c] = m[r][c];

我正在尝试将多维数组中的一组整数映射到mmap内存中。我知道计算是有效的,因为我打印了多维数组,它打印了正确的值。我比较了double for循环中的值,打印多维数组的值和赋值后在mmapped内存中的值,它们都对应相同的值

当我离开for循环并打印出mmapped内存中的内容时,只有第一个和最后一个值正确打印。相反,当我直接打印多维数组时,它会打印正确的值。我向映射的内存中写入的内容是否有误?

我不这么认为

199          args->shmem3[r+c] = m[r][c];
这就是你想要的。而是:

199          args->shmem3[r*args->matrix_size+c] = m[r][c];

是否可以删除行号并发布所有
main
?发布
create_mmap_mem()
以及传递给它们的参数。现在,您发布的代码不完整。