我有两个结构如下
typedef struct Rsp_s {
u8 code;
u8 Count;
}Rsp_t;
typedef struct Field_s {
u8 State;
u8 present;
u8 previous;
u8 event;
} Field_t
然后我
Rsp_t *rsp;
Field_t data[3][7]
我希望data[0][0]
关注rsp->Count
。
我该怎么做?
data = (Field_t *)(&(rsp->Count) +1);
没有这样做。
答案 0 :(得分:2)
当您声明一个这样的变量时......
int b[3][7];
...其内存位置由编译器分配static
或者如果auto
来自堆栈的给定内存,因此无法以编程方式更改。但是,您可以使用指针...
int (*a)[7] = b;
以下是等效的:
b[0][0] = b[1][1];
a[0][0] = a[1][1];
答案 1 :(得分:0)
你的作业是错误的。您希望将a
的地址分配给b[0][0]
,以便:
a = &b[0][0];