错误:从'short unsigned int *'到'short unsigned int'|的无效转换(在c ++中)

时间:2012-08-05 22:19:45

标签: c++

我是编程新手,我一直在尝试创建一个可以解决任何数独谜题的程序。但是,我遇到了很多错误,在这个问题上,我无法弄清楚是什么错误。

这是错误的代码:

for (short o = indice;o>=divergencias[n_diver];o--){
    N=historico[o];
    P=tabela[N];  //Line 205
    tabela[N]=0;  //Line 206
    }
    indice -= divergencias[n_diver];
    n_diver --;
    }

错误发生在标有评论的行上:

C:\(...)\main.cpp|205|error: invalid conversion from 'short unsigned int*' to 'short unsigned int'|

C:\(...)\main.cpp|206|error: incompatible types in assignment of 'int' to 'short unsigned int [9]'|

我一直在寻找这个错误,并没有找到任何令人满意的答案。此外,我学习了解编程知识的网站指出,编写类似b = billy [a+2];的内容是有效的。所以我无法理解这有什么问题...

1 个答案:

答案 0 :(得分:1)

看起来tabela被声明为short unsigned tabela[9][9]。为了从中获取unsigned short类型的项目,您必须提供两个索引,而不是一个。

另一方面,如果您希望从tabela获取整个子数组,则分配的左侧需要与unsigned short的1-D数组兼容,例如,unsigned short*指针。