我正在学习 C,但在将二维数组的指针传递给另一个函数然后打印二维数组时遇到了问题。任何帮助,将不胜感激。
int main( void ){
char array[50][50];
int SIZE;
...call function to fill array... this part works.
printarray( array, SIZE );
}
void printarray( char **array, int SIZE ){
int i;
int j;
for( j = 0; j < SIZE; j++ ){
for( i = 0; i < SIZE; i ++){
printf( "%c ", array[j][i] );
}
printf( "\n" );
}
}
char **
不代表二维数组 - 它是指向指针的指针数组。如果要将二维数组传递给它,则需要更改 printarray
的定义:
void printarray( char (*array)[50], int SIZE )
或等同于:
void printarray( char array[][50], int SIZE )
我是一名优秀的程序员,十分优秀!