错误:无法将'int *(*)[10]'转换为'const int *(*)[10]'

哈尼·高特(Hani Gotc)

我在传递非const二维指针数组作为函数的const参数时遇到问题。但是我遇到一个错误。我不明白为什么。

// Online C++ compiler to run C++ program online
#include <iostream>

void test(const int  *arrayPtr[][10]){}
//void test(int  * const arrayPtr[][10]){//Works DO NOT USE //}

int main() {
 int *arrayPtr[10][10] = {};
 test(arrayPtr);
 std::cout <<"done" << std::endl;
 return 0;
}

g++ /tmp/JYRlXRFoja.cpp /tmp/JYRlXRFoja.cpp: In function 'int main()': /tmp/JYRlXRFoja.cpp:11:7: error: cannot convert 'int* (*)[10]' to 'const int* (*)[10]'    11 |  test(arrayPtr);
      |       ^~~~~~~~
      |       |
      |       int* (*)[10] /tmp/JYRlXRFoja.cpp:5:42: note:   initializing argument 1 of 'void test(const int* (*)[10])'
    5 | void test(const int                     *arrayPtr[][10]){
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
D天堂

您的代码中有两个错误。

  1. 您传递的是int* array[][],而不是const int* array[][]因此将功能参数更改为int* array[][10]
  2. 您将遭受阵列衰减若要解决此问题,您应该通过引用传递数组。为此,您的功能参数应如下所示:int* (&arrayPtr)[][10]

您的错误是不言自明的,它说出了什么问题。如果仔细阅读,它表示您将传递int* (*)[10]const int* (*)[10]类型容器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将'int'转换为'const char *'

来自分类Dev

C ++无法将参数1从'int **'转换为'const int **'

来自分类Dev

C ++无法将参数1从'int **'转换为'const int **'

来自分类Dev

将vector <int>强制转换为const vector <const int>

来自分类Dev

将int * const强制转换为long int * const警告

来自分类Dev

将vector <int>强制转换为const vector <const int>

来自分类Dev

以10为底的int()的无效文字:'328.94'(将字节转换为int()时)

来自分类Dev

将char指针转换为int指针-缓冲区错误10

来自分类Dev

C ++-错误C2664:'int scanf(const char *,...)':无法将参数1从'int'转换为'const char *'

来自分类Dev

Python:尝试将字符串转换为int,将以10为基数的int()的int无效文字获取错误为int

来自分类Dev

错误:从'const int *'到'int *'的无效转换

来自分类Dev

为什么在此代码中使用log base 10将int转换为字符串?

来自分类Dev

无法从int转换为int **

来自分类Dev

无法从int转换为int **

来自分类Dev

无法将参数1从int转换为int &&错误

来自分类Dev

Swift错误,无法将Int类型转换为Int 16

来自分类Dev

无法将参数1从int转换为int &&错误

来自分类Dev

Swift错误,无法将Int类型转换为Int 16

来自分类Dev

Swift错误:(int)无法转换为int

来自分类Dev

将[Int?]转换为[Int]

来自分类Dev

我的代码是错误的(将str(1元素)的列表转换为int)错误ValueError:int()的常量文字以10为底:“ ['2']”

来自分类Dev

将Const char *转换为Unsigned long int-strtoul

来自分类Dev

将long int转换为const time_t

来自分类Dev

将const char *类型转换为int数组

来自分类Dev

无法将int {Class} :: *转换为int *

来自分类Dev

无法将(int *)转换为int

来自分类Dev

无法将int {Class} :: *转换为int *

来自分类Dev

ValueError: 基数为 10 的 int() 的无效文字:'' 我不能将 int 转换为 None 吗?

来自分类Dev

c-将指向const int的指针转换为仅指向int的指针(并对其进行修改)

Related 相关文章

  1. 1

    无法将'int'转换为'const char *'

  2. 2

    C ++无法将参数1从'int **'转换为'const int **'

  3. 3

    C ++无法将参数1从'int **'转换为'const int **'

  4. 4

    将vector <int>强制转换为const vector <const int>

  5. 5

    将int * const强制转换为long int * const警告

  6. 6

    将vector <int>强制转换为const vector <const int>

  7. 7

    以10为底的int()的无效文字:'328.94'(将字节转换为int()时)

  8. 8

    将char指针转换为int指针-缓冲区错误10

  9. 9

    C ++-错误C2664:'int scanf(const char *,...)':无法将参数1从'int'转换为'const char *'

  10. 10

    Python:尝试将字符串转换为int,将以10为基数的int()的int无效文字获取错误为int

  11. 11

    错误:从'const int *'到'int *'的无效转换

  12. 12

    为什么在此代码中使用log base 10将int转换为字符串?

  13. 13

    无法从int转换为int **

  14. 14

    无法从int转换为int **

  15. 15

    无法将参数1从int转换为int &&错误

  16. 16

    Swift错误,无法将Int类型转换为Int 16

  17. 17

    无法将参数1从int转换为int &&错误

  18. 18

    Swift错误,无法将Int类型转换为Int 16

  19. 19

    Swift错误:(int)无法转换为int

  20. 20

    将[Int?]转换为[Int]

  21. 21

    我的代码是错误的(将str(1元素)的列表转换为int)错误ValueError:int()的常量文字以10为底:“ ['2']”

  22. 22

    将Const char *转换为Unsigned long int-strtoul

  23. 23

    将long int转换为const time_t

  24. 24

    将const char *类型转换为int数组

  25. 25

    无法将int {Class} :: *转换为int *

  26. 26

    无法将(int *)转换为int

  27. 27

    无法将int {Class} :: *转换为int *

  28. 28

    ValueError: 基数为 10 的 int() 的无效文字:'' 我不能将 int 转换为 None 吗?

  29. 29

    c-将指向const int的指针转换为仅指向int的指针(并对其进行修改)

热门标签

归档