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);
}
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);
}
相关文章推荐
- 关于C++模板封装的问题(关于C++模板参数的声明)
- m文件转换为C/C++文件的编译、绘图、参数、打包问题总结
- C/C++语言中参数的传值问题
- C/C++面试题--数组作为函数参数的几个问题
- C#调用C++编写的DLL函数各种参数传递问题
- c#调用API 和c++dll的参数问题
- m文件转换为C/C++文件的编译、绘图、参数、打包问题总结
- C++里面的重写带有默认参数的虚函数的问题
- C++中 虚函数中的默认参数问题
- C#调用C++dll 结构体参数传递问题
- C++中函数参数的对象值传递问题
- c++ 函数参数问题
- C#调用C++写的dll 函数传递参数问题,请有经验的人详细描述
- c++中类对象直接作为函数参数所引起的问题。
- 关于C++当中的函数作为另一个函数的参数之小问题
- 从易到难编写C++程序,(8)问题:实现一个矩阵类
- C++: VC6转VC8出现问题:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”
- [c++][zz]透析C语言可变参数问题
- C++关于函数声明和定义中参数赋值为0调用问题演示
- C++与C#对比学习:函数(一)C#参数传递存在的问题