如何访问结构中的数组,让我们说:
struct example
{
double qe[2];
double qw[2];
};
double a[2], b[2];
struct example1 ={a,b};
如何打印[0]作为示例? 如何使用指向结构example1的指针打印[0]?
答案 0 :(得分:2)
首先,
struct example1 = ...;
不正确。你需要使用:
struct example example1 = ...;
即使这样,你也不能使用
struct example example1 = {a,b};
初始化example1
。这在语法上是不正确的。您需要使用其他方法将a
和b
的内容复制到example1
。
如果example1
有自动存储时间,您可以使用
方法1:
struct example example1 = { {a[0], a[1]}, {b[0], b[1]} };
否则,您必须使用:
方法2:
struct example example1;
在某些功能中:
example1.qe[0] = a[0];
example1.qe[1] = a[1];
example1.qw[0] = b[0];
example1.qw[1] = b[1];
或,方法3:
struct example example1;
在某些功能中:
memcpy(example1.qe, a, sizeof(a));
memcpy(example1.qw, b, sizeof(b));
答案 1 :(得分:0)
谢谢R Sahu,我看到了我的错误。这确实是数组的错误声明和结构的allignment。 struct example example1 = { {a[0], a[1]}, {b[0], b[1]} };
工作了。