为什么我的数组值不在共享内存中交换?

Why isn't my array values swapping in shared memory?

我正在开发一个程序,该程序使用 fork() 系统调用在 C++ 中使用共享内存,接受给定数量的输入并给出排序输出 (ascending/descending)。我创建了一个共享内存段,分配了一个键,甚至将值放入其中。这些值被作为子进程的输入,我可以很容易地从父进程的数组中输出它们。但是,我的主要问题是排序。我想在从父进程打印数据之前对子进程的共享内存中的数据进行排序 process.I 我正在尝试使用冒泡排序来完成它,但由于某种原因,冒泡排序没有排序。我可以轻松地在共享内存中打印我作为数组输入的值,但无法进行排序。如何让排序工作?任何帮助将不胜感激。

for (i = 0; i < n - 1; i++) {
    for (j = 0; j < n - i - 1; i++) {
        if (shared_memory->arr[j] > shared_memory->arr[j + 1]) {
            int temp = shared_memory->arr[j];
            shared_memory->arr[j] = shared_memory->arr[j + 1];
            shared_memory->arr[j + 1] = temp;
        }
    }

在内部循环中你写了 for(j=0;j