【问题标题】:Error with Pointer to 2D Array指向二维数组的指针错误
【发布时间】:2023-03-24 07:38:01
【问题描述】:

我正在尝试创建一个指向二维数组的指针。我在这里查看了A pointer to 2d array 的问题,但是提供的解决方案在编译时给了我这个错误:

“错误:'int ()[(((sizetype)(((ssizetype)n) + -1)) + 1)]' 到 'int [( ((sizetype)(((ssizetype)n) + -1)) + 1)]'"

代码是:

int multTable( int n ){
  int a = 10;
  int table[a][n];
  int *(tablepb)[n];
  tablepb = &(table[a-1]);
}

如何让 tablepb 指向第一组表中的最后一个数组?

【问题讨论】:

  • 运行时大小的数组(还)不是标准 C++ 的一部分。
  • 他的意思是你不能使用像“a”和“n”这样的变量来指定尺寸。您需要使用编译器认为是常量的东西(例如像 int table[2][5] 这样的数字)。

标签: c++ arrays pointers


【解决方案1】:

尽管非标准地使用运行时大小的数组,但你可以用一个简单的 int 指针来实现你想要的,而不需要运算符 & 的地址:

int multTable( int n ){
  int a = 10;
  int table[a][n];
  int *tablepb = table[a-1];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 2012-01-26
    • 1970-01-01
    相关资源
    最近更新 更多