C++ 如何使用OS邮箱传递2D数组?

C++ 如何使用OS邮箱传递2D数组?,c++,c,arrays,pointers,nios,C++,C,Arrays,Pointers,Nios,我被要求通过NiosII中的OS邮箱传递2D数组,例如: mailbox=OSMboxCreate((void *)0); INT8U return_code = OS_NO_ERR; MemoryPartition = OSMemCreate(&array_a[0][0], 3, 4*ARRAY_SIZE*ARRAY_SIZE, &return_code); void function1() INT32S (*array_a)[32]; array_a = O

我被要求通过NiosII中的OS邮箱传递2D数组,例如:

mailbox=OSMboxCreate((void *)0);
INT8U return_code = OS_NO_ERR;
MemoryPartition = OSMemCreate(&array_a[0][0], 3, 4*ARRAY_SIZE*ARRAY_SIZE, &return_code);
void function1()

    INT32S (*array_a)[32];
    array_a = OSMemGet(MemoryPartition, &return_code);
    alt_ucosii_check_return_code(return_code);
    return_code = OSMboxPost(mailbox, (void *)(array_a));
    alt_ucosii_check_return_code(return_code);
void function2()

    INT32S (*data_array)[32];
    data_array = (INT32S *)OSMboxPend(mailbox, 0, &return_code);
    alt_ucosii_check_return_code(return_code);
    for(i=0;i<32;i++){
        for(j=0;j<32;j++){
            data_array[i][j]= 1;
        }
    }
    printf("done");
mailbox=OSMboxCreate((void*)0;
INT8U返回\代码=操作系统\无\错误;
MemoryPartition=OSMemCreate(&array\u a[0][0],3,4*数组大小*数组大小,&return\u代码);
无效函数1()
INT32S(*数组_a)[32];
array_a=OSMemGet(MemoryPartition和return_代码);
alt\u ucosii\u检查返回代码(返回代码);
return_code=OSMboxPost(邮箱,(void*)(数组_a));
alt\u ucosii\u检查返回代码(返回代码);
无效函数2()
INT32S(*数据_数组)[32];
数据数组=(INT32S*)OSMboxPend(邮箱、0和返回代码);
alt\u ucosii\u检查返回代码(返回代码);
对于(i=0;i