proof 发表于 2016-09-20 17:15

求助:如何调用这个例程?

本帖最后由 proof 于 2016-09-20 17:16 编辑

例程如下,不可改动:
void MaxSum (int m, int n, int **a ) {
  a=8 ;
}
其中,a是一个m×n矩阵

求C++ 调用程序,越简洁、直观越好。
我写的意图可作参考:
int main() {
  int m=3,n=4;
  int b = { {   7 , 23, -32, 6 },     // 可改。但必须批量斌值。(直观方块形式)
          { -19,6, 32, -9 },
          { -2 , 11, -4, 13 } };
  MaxSum(???);
}

bruceteen 发表于 2016-09-21 08:26

很多烂人把 int** a 叫做二维数组,其实不是,因此 int b 这个二维数组是没法传给a的

假如不允许改
#include <stdio.h>

void MaxSum( int** a )
{
    a = 8;
}

int main( void )
{
    int c0 = {   7, 23, -32,6 };
    int c1 = { -19,6,32, -9 };
    int c2 = {-2, 11,-4, 13 };
    int* b = { c0, c1, c2 };
    MaxSum( b );
}

假如允许改
#include <stdio.h>

void MaxSum( size_t row, size_t col, int a )
{
    a = 8;
}

int main( void )
{
    int b = { {   7, 23, -32,6 }
                  , { -19,6,32, -9 }
                  , {-2, 11,-4, 13 } };
    MaxSum( 3, 4, b );
}
页: [1]
查看完整版本: 求助:如何调用这个例程?