c++ - 将结构数组的元素传递给函数

标签 c++ c function struct

我试过这段代码,但它不起作用。我只想发送 struct grid 的元素 p,而不是将整个结构发送给函数。

struct grid{ 
  int p; 
  int s; 
}

void create(int a[9][9]); 
{ 
  a[0][2] = 4; 
}

int main() 
{
  struct grid a[9][9]; 
  create(a.s); 
}

最佳答案

正如其他人所指出的,您需要的东西不能以那种方式完成。解决此问题的一种方法是在将矩阵传递给方法之前对其进行转换:

using namespace std;

struct grid{ 
    int p; 
    int s; 
};

void create(int a[9][9])
{ 
    a[0][2] = 4; 
}

void ExtractS(struct grid a[9][9], int s[9][9])
{
    for (int i = 0; i < 9; i++)
        for (int j = 0; j < 9; j++)
            s[i][j] = a[i][j].s;
}

int main() 
{
    struct grid a[9][9]; 
    int s[9][9];
    ExtractS(a, s);
    create(s);
}

但这提出的问题多于它回答的问题:

  • 必须将数据返回到原始结构矩阵,否则创​​建所做的更改将丢失
  • 这种方法非常低效,因为它复制了所有数据

也许您应该修改设计并使 create 函数接收 grid 元素的矩阵。

关于c++ - 将结构数组的元素传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20764135/

相关文章:

c# - 在 C# 或 C++ 中读取二进制文件

c++ - Win32 自定义绘制 TreeView 控件

c - 重新分配(): invalid next size after two computations

javascript - 如何将数组的元素作为参数传递给 JavaScript 中的函数?

function - 有关按月份和地区分组的总平均值的问题 - Google 表格

c++ - 如何在 find_if 算法中使用谓词函数?

c++ - 将鼠标悬停在 QListWidget 项上时如何绘制轮廓?

c - 请求非结构或 union 中的成员 '_file'

c - 具有 `for` 循环的菱形输出

python - 通过循环函数中的每一行来修改数据框