c/c++语言开发共享传递一个二维数组,Works in C但不是C ++

我正在将二维数组传递给markfunction。

void mark(int n, int m, int i, int j, int canvisit[][m], int a[][m]){} 

这段代码在Codeblocks上完美地运行,但在C ++中,我得到的错误如下:

 prog.cpp:9:55: error: use of parameter outside function body before ']' token void mark(int n, int m, int i, int j, int canvisit[][m], int a[][m]){ ^ prog.cpp:9:56: error: expected ')' before ',' token void mark(int n, int m, int i, int j, int canvisit[][m], int a[][m]){ ^ prog.cpp:9:58: error: expected unqualified-id before 'int' void mark(int n, int m, int i, int j, int canvisit[][m], int a[][m]){ 

我在这里做错了吗? 我通过int m给出了列数,这是用C而不是C ++。 任何帮助将受到高度赞赏。

    您声明的数组参数是可变长度数组 ,而C ++中不允许这些数组 。 你必须以其他方式解决,比如使用模板, std::vectorstd::array

    请记住,C和C ++是两种截然不同的语言。 C ++最初可能是从C开发的,它们共享很多东西的语法,但它们仍然是具有不同规则的不同语言。

    只有C支持可变长度数组,而C ++则不支持。 C ++标准表示数组的大小必须是常量表达式。

    请改用std::vector 。 声明应该是

    需要了解更多c/c++开发分享传递一个二维数组,Works in C但不是C ++,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

     void mark(int n, int m, int i, int j, vector< vector > &canvisit, vector< vector > &a); 

      以上就是c/c++开发分享传递一个二维数组,Works in C但不是C ++相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/980611.html

      (0)
      上一篇 2021年12月14日
      下一篇 2021年12月14日

      精彩推荐