如何通过C中的指针传递二维数组? [英] How to pass a 2D array by pointer in C?

查看:56
本文介绍了如何通过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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆