![](/img/trans.png)
[英]warning: assignment makes integer from pointer without a cast [-Wint-conversion] in C
[英]warning: assignment makes pointer from integer without a cast [-Wint-conversion] in C program
我無法解決此問題:警告:賦值使指針從整數開始而沒有強制轉換[-Wint-conversion]-> auxcandidate = alpha [pos]
這是我的代碼:
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];
Alpha(pos)不是該地址(指針),而是該位置的值,並且您試圖將其寫入char指針,因此實際上您進行了強制轉換,並且這是警告的來源
就像@dear_tzvi所說的那樣,該行是警告的來源。
您應該使用:
auxcandidate = &alpha[pos];
如果您希望auxcandidate變量指向該索引
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.