标题:关于C语言,二维数组指针的问题
只看楼主
a187326700
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-2-26
结帖率:100%
已结贴  问题点数:10 回复次数:3 
关于C语言,二维数组指针的问题
#include<stdio.h>

void show_array(int (*pr)[n], int n);

int    main(void)
{
    int    array[3][4] = {-3,2,43,4,5,6,-17,8,9,10,11,12};
    show_array(array, 4);
   
    return    0;
}

void show_array(int    (*pr)[n], int n)
{
    for(int i=0; i<3; i++)
    {
        for(int j=0; j<n; j++)
            printf("%5d",*(*(pr+i)+j));
        puts("\n");
    }
}

为什么编译不通过,请大神指点一下哪里错了
搜索更多相关主题的帖子: C语言 指针 二维数组 void int 
2020-03-27 09:11
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:4 
ANSI C声明中方括号里需要常量表达式,而多半编译器即使支持更新的标准也需要你明确告诉它才行。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-03-27 09:17
a187326700
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-2-26
得分:0 
回复 楼主 a187326700
怎么明确告诉编译器,能告诉我吗?
2020-03-27 09:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:6 
程序代码:
#include <stdio.h>

void show_array( size_t, size_t, int[][*] );

int main( void )
{
    int array[3][4] = { {-3,2,43,4}, {5,6,-17,8}, {9,10,11,12} };
    show_array( 3, 4, array );
}

void show_array( size_t row, size_t col, int arr[row][col] )
{
    for( size_t r=0; r!=row; ++r )
    {
        for( size_t c=0; c!=col; ++c )
            printf( "%5d", arr[r][c] );
        putchar( '\n' );
    }
}
2020-03-27 10:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500636-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.262421 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved