编写一个函数,原型为:
int f(int **pIntArray, int nRow, int nCol);
此函数的功能,我记不太清楚了。
然后将一个二维数组intArray[nRow][nCol]作为参数传入上述函数。如何传?
正解:
法一:
intArray[nRow][nCol];
int** pArray;
pArray = new int*[nRow];
for(int i=0; i<nRow; i++)
*(pArray+i) = Array[i];
f(pArray,nRow,nCol);
法二:
intArray[nRow][nCol];
int* pArray[nRow];
for(int i=0; i<nRow; i++)
pArray[i] = Array[i];
f(pArray,nRow,nCol);
==========TEST ============
int f(int **pIntArray, int nRow, int nCol)
{
//
for(int i=0; i<nRow; i++){
//
int *p = *(pIntArray + i);
//
for(int j=0; j<nCol; j++){
printf("%d", *p);
p++;
}
printf("/n");
}
return 1;
}
int main(int argc, char* argv[])
{
int Array[][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
/* int** pArray;
pArray = new int*[3];
for(int i=0; i<3; i++)
*(pArray+i) = Array[i];
*/
int* pArray[3];
for(int i=0; i<3; i++)
pArray[i] = Array[i];
f(pArray,3,3);
//printf("Hello World!/n");
return 0;
}