1
它接受指針的方法的指針作爲參數使用指針的指針變量在C
int findMax(int **a, int m, int n)
{
int max=**a,i,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(max<=a[i][j]){
max=a[i][j];
}
}
}
return max;
}
這是從那裏findMax方法被稱爲主函數傳遞一個二維數組成一個函數。
int main()
{
// Variable Declaration
int m,n,i,j,a[50][50],*arr[50],**arrd;
// User Input
printf("Enter the number of rows in the matrix\n");
scanf("%d",&m);
printf("Enter the number of columns in the matrix\n");
scanf("%d",&n);
printf("Enter the elements in the matrix\n");
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
// Single Pointer Allocation
for(i=0;i<m;i++){
arr[i]=&a[i][0];
}
arrd=&arr[0];
// Output
printf("The matrix is\n");
for(i=0;i<m;i++){
for(j=0;j<n;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("The maximum element in the matrix is %d\n",findMax(arrd,m,n));
return 0;
}
我只是想找出一個2d數組中的最大元素使用一個函數,該函數將指針指向數組的指針。 此代碼工作正常,但我正在尋找更好的方法...
什麼更好的辦法,哈哈? – Ulterior 2015-03-08 20:13:45
在避免在主函數中完成單指針分配... – 2015-03-10 14:16:35