【发布时间】:2016-05-04 20:12:31
【问题描述】:
我正在学习 C,但我发现那些模糊的编译器错误消息越来越令人沮丧。这是我的代码:
char getkey (int minimo, int maximo, int alphalen, int index, char alpha[])
{
int cociente, residuo, cont;
int i = 0;
char cand[maximo+1];
char candidate[maximo+1];
while (index != 0)
{
cociente = index / alphalen;
residuo = index%alphalen;
cand[i] = residuo;
index = cociente;
i+=1;
}
for (cont=i-1; cont>=0; cont--)
{
int pos = cand [cont];
candidate[i] = alpha[pos];
}
return candidate;
}
这会产生一个警告:
- return 从没有强制转换的指针中生成整数
- 返回候选人;
有人可以解释这些警告吗?
【问题讨论】:
-
您的函数希望返回 char,但您返回的是 char 吗?
-
候选人不是字符
-
您的函数被声明为返回
char,但您正试图返回char *。 -
candidate 是一个 char 数组,而不是一个 char,并且声明了您的函数,因此返回值应该是一个 char。
标签: c