首先我定义了一个函数:
void MatrixChain(int *p,int n,int **m,int **s)
{
......
}
之后我又动态申请了二维数组:
int *c=new int [n];
int (*a)[n]=new int [n][n];
int (*b)[n]=new int [n][n];
下面我想传参给函数:
MatrixChain(c,n,a,b);出现错误了,请大家指示该如何传递呢
...全文
31414打赏收藏
一个向函数传递数组参数的问题,急!
首先我定义了一个函数: void MatrixChain(int *p,int n,int **m,int **s) { ...... } 之后我又动态申请了二维数组: int *c=new int [n]; int (*a)[n]=new int [n][n]; int (*b)[n]=new int [n][n]; 下面我想传参给函数: MatrixChain(c,n,a,b);出现错误了,请大家指示该如何传递呢
a) 一个整型数(An integer)
b)一个指向整型数的指针( A pointer to an integer)
c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to
an intege)r
d)一个有10个整型数的数组( An array of 10 integers)
e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to
integers)
f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a func
tion that takes an integer as an argument and returns an integer)
h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
( An array of ten pointers to functions that take an integer argument and retur
n an integer )
答案是:
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument an
d returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integ
er argument and return an integer
int main(int argc, char *argv[])
{
int n;
cout<<"请输入数组个数:";
cin>> n;
int *r=new int [n];
int *c=new int [n];
for(int i=0;i<n;i++)
{
cout<<"请输入第"<<(i+1)<<"个矩阵的行数:"<<endl
<<"请输入第"<<(i+1)<<"个矩阵的列数:"<<endl;
cin>>r[i]>>c[i];
}
typedef int* int_ptr;
int **a = new int_ptr[n];
int **b = new int_ptr[n];
for(int i = 0;i < n; ++i)
{
a[i] = new int[n];
b[i] = new int[n];
}
int main(int argc, char *argv[])
{
int n;
cout<<"请输入数组个数:";
cin>> n;
int *r=new int [n];
int *c=new int [n];
for(int i=0;i<n;i++){
cout<<"请输入第"<<(i+1)<<"个矩阵的行数:"<<endl
<<"请输入第"<<(i+1)<<"个矩阵的列数:"<<endl;
cin>>r[i]>>c[i];}
int (*a)[n]=new int [n][n];
int (*b)[n]=new int [n][n];
MatrixChain(c,n,a,b);
Traceback(1,n,b) ;
system("PAUSE");
return 0;
}