【问题标题】:How do I add a custom struct to an array in C?如何将自定义结构添加到 C 中的数组?
【发布时间】:2020-07-04 19:27:58
【问题描述】:

我有一个名为 pair 的自定义结构,它有两个参数:int 赢家和 int 输家

typedef struct
{
    int winner;
    int loser;
}
pair;

我还有一个名为 pairs 的对数组,但是当我尝试将一对添加到数组时,它会显示,

tideman.c:157:37: error: expected expression
                pairs[pair_count] = {i, j};

在 C 中使用花括号表示法向数组添加结构有问题吗?如果我为添加对创建一个变量,每次我添加一个新对时它会更改数组中的所有对吗(由于可变性问题)?

    for (int i = 0; i < candidate_count; i++)
    {
        for (int j = 0; j < candidate_count; i++)
        {
            if (preferences[i][j] > preferences[j][i])
            {
                pairs[pair_count] = {i, j};
            }
        }
    }

【问题讨论】:

    标签: arrays c struct


    【解决方案1】:

    {i, j} 只能在初始化时工作 (pair x = {i, j};)。 pairs[pair_count] = {i, j}; 将是一个赋值,你需要一个 pair 类型的变量作为右侧。获得一个最直接的方法是使用复合文字 pairs[pair_count] = (pair){i, j};。或者,您可以分别分配给每个成员 (pairs[pair_count].winner=i; pair[pair_count].loser=j;)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-03
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      相关资源
      最近更新 更多