警告:キャストのない整数からのポインタの代入 - > auxcandidate = alpha [POS]警告:Cプログラムのキャストなし整数からのポインタの代入[-Wint-conversion]
は、ここに私のコードです:
char* getkey(int minimo, int maximo, int alphalen, int index, char alpha[]);
int main()
{
int minimo = 2;
int maximo = 2;
char *alpha = "abc";
int alphalen = strlen(alpha);
char *candidata;
printf("La candidata es: ");
candidata = getkey(minimo, maximo, alphalen, 5, alpha);
//printf(" %c", candidata);
//if (candidata = "bc")
//{}
return 0;
}
char* getkey (int minimo, int maximo, int alphalen, int index, char alpha[])
{
int cociente, residuo, cont;
int i = 0;
char cand[maximo+1];
char* auxcandidate;
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];
auxcandidate = alpha[pos];
}
return auxcandidate;
}
誰かがこれらの警告を説明できますか?
auxcandidate = alpha[pos];
アルファ(posが)アドレス(ポインタ)が、その場所での値ではなく、あなたが実際にはので、char型のポインタに書き込むしようとしている。
を指すようにしたい場合は自分でこれを確認する:「'何をauxcanidate'される' alpha'は何 'アルファとは何ですか? [pos] '?"すすぎ、繰り返します。 –
[代入は、キャストのない整数からポインタを作成する]の可能な複製です(http://stackoverflow.com/questions/2074009/assignment-makes-pointer-from-integer-without-cast) –
なぜあなたの関数は複製されていますか? –