表达式必须具有指向带有结构的对象类型的指针

时间:2019-05-15 13:39:29

标签: c

*我发现了我的错误。 c已经是该程序的int了。这对我来说是一个很大的程序,我有20个变量,很困惑。谢谢。顺便说一下,这个复制结构的选项最终对我有用。

我正在尝试复制一个结构,它告诉我需要放置一个我认为的指针。 我想提到我在所有程序中都没有使用指针。

我已经完成了游戏代码。这是一个500百万的代码,运行平稳,直到我尝试复制一个结构。 在很多与我相似的人身上,我认为这是平等的,他们没有我的问题。我还搜索了所有网络。 它给我写了两种错误,我将在下面添加。 谢谢!

#include <stdio.h>
#include <string.h>

typedef struct player {
    char name[ARR_SIZE]; // player's name, up to 20 chars
    int age; // player's age, 0 - 120
    int defense; // defense power, 1 - 100
    int attack; // attack power, 1 - 100
}player;

typedef struct team {
    char name[ARR_SIZE]; // team's name
    int numberOfPlayers; // number of players in the team, up to MAX_PLAYERS
    player teamPlayers[MAX_PLAYERS]; // array of the team players
    int points; // the team points in the league
    int wins; // number of wins
    int draws; // number of draws
    int losses; // number of losses
}team;

team b[MAX_TEAMS_NUMBER];
team c[MAX_TEAMS_NUMBER]; (1)

** the part of the code itself**
int main ()
{
    for (int i = 0; i < number_of_teams; i++)
        {
            c[i] = b[i]; (2)
        }
}

我用数字表示问题线附近 (1)'c':'team [10]'的间接级别与'int'不同 (2)表达式必须具有指向对象类型的指针

1 个答案:

答案 0 :(得分:1)

在C语言中,代码顺序非常重要。在这里,您首先尝试创建一个“团队”数组,然后告诉编译器“团队”是什么。因为它将逐行读取您的代码,所以当您读取前两行时,它不知道团队是什么。

您必须在结构后移动第一行。

请记住,函数也会发生此问题:如果在声明之前使用函数,编译器将检测到错误。 (声明不是实现,您可以在代码底部实现一个函数,但是您需要使用原型进行声明。)