【问题标题】:assign value to pointer that points to array of pointers为指向指针数组的指针赋值
【发布时间】:2021-11-08 09:54:02
【问题描述】:

我有一个 int 指针数组

int * arr[3];

如果我想定义一个指向arr 的指针,我可以执行以下操作:

int * (*p)[] = &arr;

但是,在我的代码中,我需要先声明那个指针:

int *(*p)[];

我的问题是,如何在声明后将&arr 分配给它。我试过(*p)[] = &arr;,但没用。

【问题讨论】:

  • 您可能必须包含一个代码示例,并说明究竟是什么不起作用。 (int* (*)[] 是指向不完整数组类型的指针,因此在某些情况下这可能是个问题。

标签: c pointers


【解决方案1】:

你可以简单地做p = &arr

试试here

【讨论】:

    【解决方案2】:

    如果您想将 p 分配给 arr,您只需执行 p = &arr; 这是因为当你写 p 时,你基本上是在对 C 说:这是指向指针数组的指针

    所以当你 &arr 得到与 & 相同的类型时,你会得到指向它旁边的变量的指针

    还要注意,如果你想要一个结构体中的变量值,它指向的(即结构体 *a,里面有 int i)你放一个 -> (使它成为一个 a-> 整数;)

    您应该全面更新答案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      相关资源
      最近更新 更多