簡體   English   中英

警告:賦值使指針從整數開始,而在C程序中沒有強制轉換[-Wint-conversion]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM