二维数组地址

  • 本文关键字:数组 组地址 二维
  • 更新时间 :
  • 英文 :


我有两个结构如下

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);

不行

当你像这样声明一个变量时…

int b[3][7];

…如果static是编译器分配的内存位置,如果auto是堆栈中给定的内存位置,因此不能以编程方式更改。但是,您可以访问该内存,并通过使用指针对其进行读写…

int (*a)[7] = b;

下面是等价的:

b[0][0] = b[1][1];
a[0][0] = a[1][1];

你的作业写反了。您希望将b[0][0]的地址分配给a,因此:

a = &b[0][0];

相关内容

最新更新