c语言中怎么把一个大小不确定的二维数组当作参数传入函数中?
比如我要在一个函数中对二维数组a[i][j]进行处理,将a[i][j]的每个元素打印出来,怎样写这个函数呢?
数组的大小应该是确定的吧?
数组也是分配连续的块空间,传数组首址和大小。
#include <stdio.h> void PrintArray( size_t, size_t, int arr[][*] ); #define PRINTARRAY(arr) PrintArray( sizeof(arr)/sizeof(*arr), sizeof(*arr)/sizeof(**arr), arr ) int main( void ) { int a[2][3] = { 0,1,2,3,4,5 }; PRINTARRAY( a ); puts( "-------------------------" ); int b[3][2] = { 0,1,2,3,4,5 }; PRINTARRAY( b ); return 0; } void PrintArray( size_t r, size_t c, int arr[r][c] ) { for( size_t i=0; i!=r; ++i ) for( size_t j=0; j!=c; ++j ) printf( "%d%s", arr[i][j], (j+1!=c?", ":"\n") ); }
[此贴子已经被作者于2016-12-7 18:05编辑过]