您的位置:首页 > 编程语言 > C语言/C++

C/C++矩阵传参数问题

2017-03-18 13:56 162 查看
例一:



int **example_data , *test_data ,*distance;
 //allocate space in heap for the variable

 example_data = new int*
;

 for(int i=0;i<N;i++)

 {

  example_data[i] = new int[D];

 }

 test_data = new int[D];

 distance = new int
;

例二:

int example_data
[D] , test_data[D] ,distance
;



当然在函数内部两种访问数组的方式都可以:array[i][j]和*( *(array+i) + j)。


空间复杂度O(N*D),时间复杂度O(N*D)。

差别在于,例一这样写,是在堆空间里申请;否则,例二是用栈

对于静态数组:

void fun( int array[][D])// OK  
void fun( int (*array)[D])//OK  
void fun( int **array) //error  
  
int main()  
{  
    int A
[D];  
    fun(A);  
}  

对于动态数组:

void fun( int array[][D])// Error  
void fun( int (*array)[D])//Error  
void fun( int **array) //OK  
  
int main()  
{  
    int **A;  
    A = new int*
;  
    for(int i=0;i<N;i++)  
        A[i] = new int[D];  
    fun(A);  
}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: