首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

warning : passing arg 一 of 'deal' from incompatible pointer type

2013-02-04 
warning : passing arg 1 of 𧷪l' from incompatible pointer type可是这是书上的范例应该没

warning : passing arg 1 of 'deal' from incompatible pointer type



可是这是书上的范例应该没问题啊。

求解释。 c gcc
[解决办法]
  char *suit[4] = {"Hearts","Diamonds","Clubs","Spades"};
    char * face[13] = {"Ace","Decue","Three","Four","Five","Six","Seven",
                       "Eight","Nine","Ten","Jack","Queen","King"};
改成const char *


或者deal中形参改成char * []
[解决办法]
二维数组的初始化

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void shuffle (int [] [13]);
void deal (const int [] [13], const char * [], const char * []);

int main()
{  
    //1
    char const *suit[4] = {"Hearts","Diamonds","Clubs","Spades"};
    //2
    char  const * face[13] = {"Ace","Decue","Three","Four","Five","Six","Seven",
                       "Eight","Nine","Ten","Jack","Queen","King"};
    //3
    int deck[4][13] = {{0}};

    srand (time (NULL));

    shuffle (deck);
    deal (deck, face, suit);

    return 0;
}

void shuffle (int wDeck[][13])
{
    int card, row, column;

    for (card = 1; card < 52; card ++){
        row = rand()%4;
        column = rand()%13;

        while (wDeck[row][column] != 0){
            row =rand ()% 4;
            column =rand ()% 13;
        }

        wDeck[row][column] = card;
    }
}

 void deal (const int wDeck[][13], const char * wFace[], const char * wSuit[])
{
    int card, row, column;

    for (card = 1; card <= 52; card++)
        for(row = 0; row <= 3; row++)
            for(column = 0; column <= 12; column++)
                if(wDeck [row][column] == card)
                    printf("%5s of %-8s%c",wFace[column], wSuit[row],
                            card % 2 == 0 ?'\n':'\t');
}

热点排行