如何通过C中的指针传递二维数组? [英] How to pass a 2D array by pointer in C?
本文介绍了如何通过C中的指针传递二维数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在学习 C,但在将 2D 数组的指针传递给另一个然后打印 2D 数组的函数时遇到了问题.任何帮助,将不胜感激.
I am learning C and am having trouble passing the pointer of a 2D array to another function that then prints the 2D array. Any help would be appreciated.
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
的定义:
char **
doesn't represent a 2D array - it would be an array of pointers to pointers. You need to change the definition of printarray
if you want to pass it a 2D array:
void printarray( char (*array)[50], int SIZE )
或等效地:
void printarray( char array[][50], int SIZE )
这篇关于如何通过C中的指针传递二维数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文