我试过这段代码,但它不起作用。我只想发送 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/