【发布时间】:2019-10-12 19:19:44
【问题描述】:
下面的代码产生编译器警告:从不兼容的指针类型返回。我返回的类型似乎是问题,但我似乎无法修复此警告。
我尝试将手的类型更改为 int *。也尝试过返回&hands。
int * dealDeck(int numPlayers, int numCards, int cardDeck[])
{
static int hands[MAX_PLAYERS][MAX_CARDS]={0};
int start = 0;
int end = numCards;
int player, hand, j;
int card;
for(player = 0; player < numPlayers; player++)
{
for(hand = start, j=0; hand < end; hand++,j++)
{
card = cardDeck[hand];
hands[player][j] = card;
}
start = end;
end += numCards;
}
return hands;
}
这个函数应该返回一个指向数组“hands”的指针。然后将该数组传递给另一个函数,该函数将打印出它的元素。
【问题讨论】:
-
“手柄”是二维整数数组,每个玩家一个。 “dealDeck”表示它将返回一个单维整数数组。要么需要修改返回类型,要么只返回数组。
-
您可能会发现将数组(在需要的地方定义)作为参数传递给函数更容易(也更传统),而不是让它无法访问。
标签: c