CPP中二维数组做参数怎么传入?

CPP中二维数组做参数如何传入????
我需要写一个dll如下
C/C++ code
#include "stdafx.h"
#include <string.h>
#include "myCorr_C.h"
#include "mex.h"

#define TESTAPI  extern "C"  __declspec( dllexport ) 
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
struct DataStruct{
   double** data;
   double* qoe;
};

struct ContributionStruct{
   double* contribution;
};

TESTAPI int init(){
    if(!mycorr_CInitialize()){
        return -1;
    }
}

TESTAPI ContributionStruct* qoc_add(DataStruct* dataStruct){
    [color=#FF0000]dataStruct->data[0];//
这里我需要从dataStruct中获取到data数组和qoe数组,
并且还要将一个新的double数组写入到ContirbutionStruct中的contributin的double数组中,
这里数组都是用指针来声明,没有用[],需要求助下,
如何对这个DataStruct* 中的2个double数组进行取值赋值操作,
比如获取到data数组的长度,
一次获取到double数组中的每一个数等[/color]
    mxArray *argX=mxCreateDoubleMatrix(3,3,mxREAL); 
    double data[9] ={-1.5,4,-3,1,2,2,2,3,8};
    double qoe[3] = {3,5,6};
    double contribution[3];
    mxArray *argY=mxCreateDoubleMatrix(3,1,mxREAL);
    memcpy(mxGetPr(argX),data,9*sizeof(double));
    memcpy(mxGetPr(argY),qoe,3*sizeof(double)); 

    mxArray *coef = NULL;
    //memcpy(mxGetPr(X),x,9*sizeof(double)); 

    mlfMycorr(1,  &coef, argX, argY);
    
    double *resultP;
    resultP=mxGetPr(coef);
    for(int i=0;i<3;i++){
        contribution[i]=*(resultP+i);
    }

    mxDestroyArray(argX);
    mxDestroyArray(argY);
    mxDestroyArray(coef);
    return 0;
}

TESTAPI int destroy(){
    mycorr_CTerminate();
    return 0;
}


------解决方案--------------------
二维数组的初始化只能省略第一维的数组大小,不能省略第二维的数组大小
不然只知道指向二维数组的指针是如何也不能确定二维数组的维数
------解决方案--------------------
最好将数组维数作为参数传递进去,否则指针很难办。也可以用&传递引用过去
------解决方案--------------------
没看明白你的问题。二维数组指针这样定义:
double (*a)[N]; // N为常数,a即二维数组指针变量。
函数间传递多维数组时,有时不能固定数组的大小,这是可以把多维数组当作一维数组来传递,在使用时根据数组大小参数计算下标的值。例如:
int a[3][2];
int* p = &a[0][0];
p[0]即a[0][0],
p[1]即a[0][1],
p[2]即a[1][0],
p[3]即a[1][1],
p[4]即a[2][0],
p[5]即a[2][1]。
------解决方案--------------------
用两个&
------解决方案--------------------
我建议你去看看C语言中的指针这部分内容!看懂了,这些就不是问题咯~~
------解决方案--------------------
指针数组,或者是传数组的地址都可以吧

------解决方案--------------------
很多人认为指向二维数组的指针就是**,其实是错误的,**是指向指针变量(或指针数组)的指针,二维数组指针的定义方法是double (*a)[N]这种形式。
你目前的应用情况比较复杂,建议你先做个测试程序,在java中把数组初始化为特定的数据,然后调试看一下传递过来的地址里面是什么形式,如何对应的,然后再考虑取数据的方法。