首页 > 解决方案 > 警告:从不兼容的指针类型 const int (*)[3] 分配给 int **

问题描述

我在将矩阵的指针分配给双指针时遇到问题,接下来将使用该双指针,如下所示:

const int COLOR_MAP_INDIA[16][3] = {{ 140, 67, 46 },{ 0, 0, 255 },{ 255, 100, 0 },{ 0, 255, 123 },{ 164, 75, 155 },{ 101, 174, 255 },{ 118, 254, 172 },{ 60, 91, 112 },{ 255, 255, 0 },{ 255, 255, 125 },{ 255, 0, 255 },{ 100, 0, 255 },{ 0, 172, 254 },{ 0, 255, 0 },{ 171, 175, 80 },{ 101, 193, 60 }};

int main(int argc, char *argv[]){
    int **COLOR_MAP;

    COLOR_MAP= COLOR_MAP_INDIA;
}

编译器说:

警告:从不兼容的指针类型 const int (*)[3] 分配给 int **

怎么了 ?

标签: cpointers

解决方案


COLOR_MAP被定义为指向 的指针的指针int,而COLOR_MAP_INDIA是由 3 组成的 16 个数组组成的数组int。这些类型不兼容。您应该定义COLOR_MAP为指向 3 数组的指针int

int (*COLOR_MAP)[3] = COLOR_MAP_INDIA;

该指针是否符合您的需要取决于您打算在代码的未发布部分中执行的操作。


推荐阅读